You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@logging.apache.org by "ASF subversion and git services (Jira)" <ji...@apache.org> on 2020/02/09 02:56:00 UTC
[jira] [Commented] (LOG4J2-2758) RollingFileAppender: NPE when
using a custom DirectFileRolloverStrategy without fileName
[ https://issues.apache.org/jira/browse/LOG4J2-2758?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17033105#comment-17033105 ]
ASF subversion and git services commented on LOG4J2-2758:
---------------------------------------------------------
Commit 72c548a56c80bd7d8fdf111c2a7143937926414c in logging-log4j2's branch refs/heads/master from ChristophKaser
[ https://gitbox.apache.org/repos/asf?p=logging-log4j2.git;h=72c548a ]
Fixed check for RollingFileManager,directWrite (#331)
* LOG4J2-2758: Fixed check for RollingFileManager.directWrite
Bugfix: Use the interface DirectFileRolloverStrategy instead of the concrete implementation DirectWriteRolloverStrategy when deciding whether to use the pattern to generate a file name.
* LOG4J2-2758: Added test for RollingFileManager with custom DirectFileRolloverStrategy
> RollingFileAppender: NPE when using a custom DirectFileRolloverStrategy without fileName
> ----------------------------------------------------------------------------------------
>
> Key: LOG4J2-2758
> URL: https://issues.apache.org/jira/browse/LOG4J2-2758
> Project: Log4j 2
> Issue Type: Bug
> Components: Appenders
> Affects Versions: 2.12.1
> Reporter: Christoph Kaser
> Priority: Major
>
>
> I have created a custom RolloverStrategy which implements org.apache.logging.log4j.core.appender.rolling.DirectFileRolloverStrategy (but does not extend DirectWriteRolloverStrategy).
> When I try to use this strategy in a RollingFileAppender with a filePattern, but no fileName, log4j writes an exception to the console and does not work:
>
> {noformat}
> 2020-01-13 17:22:49,024 StartUp-Thread ERROR An exception occurred processing Appender CustomAppender java.lang.NullPointerException
> at java.base/java.io.File.<init>(File.java:276)
> at org.apache.logging.log4j.core.appender.FileManager.createOutputStream(FileManager.java:190)
> at org.apache.logging.log4j.core.appender.OutputStreamManager.getOutputStream(OutputStreamManager.java:166)
> at org.apache.logging.log4j.core.appender.OutputStreamManager.writeToDestination(OutputStreamManager.java:261)
> at org.apache.logging.log4j.core.appender.FileManager.writeToDestination(FileManager.java:272)
> at org.apache.logging.log4j.core.appender.rolling.RollingFileManager.writeToDestination(RollingFileManager.java:244)
> at org.apache.logging.log4j.core.appender.OutputStreamManager.flushBuffer(OutputStreamManager.java:293)
> at org.apache.logging.log4j.core.appender.OutputStreamManager.flush(OutputStreamManager.java:302)
> at org.apache.logging.log4j.core.appender.AbstractOutputStreamAppender.directEncodeEvent(AbstractOutputStreamAppender.java:199)
> at org.apache.logging.log4j.core.appender.AbstractOutputStreamAppender.tryAppend(AbstractOutputStreamAppender.java:190)
> at org.apache.logging.log4j.core.appender.AbstractOutputStreamAppender.append(AbstractOutputStreamAppender.java:181)
> at org.apache.logging.log4j.core.appender.RollingFileAppender.append(RollingFileAppender.java:312)
> at org.apache.logging.log4j.core.config.AppenderControl.tryCallAppender(AppenderControl.java:156)
> at org.apache.logging.log4j.core.config.AppenderControl.callAppender0(AppenderControl.java:129)
> at org.apache.logging.log4j.core.config.AppenderControl.callAppenderPreventRecursion(AppenderControl.java:120)
> at org.apache.logging.log4j.core.config.AppenderControl.callAppender(AppenderControl.java:84)
> at org.apache.logging.log4j.core.config.LoggerConfig.callAppenders(LoggerConfig.java:543)
> at org.apache.logging.log4j.core.config.LoggerConfig.processLogEvent(LoggerConfig.java:502)
> at org.apache.logging.log4j.core.config.LoggerConfig.log(LoggerConfig.java:485)
> at org.apache.logging.log4j.core.config.LoggerConfig.log(LoggerConfig.java:460)
> at org.apache.logging.log4j.core.config.AwaitCompletionReliabilityStrategy.log(AwaitCompletionReliabilityStrategy.java:82)
> at org.apache.logging.log4j.core.Logger.log(Logger.java:161)
> at org.apache.logging.log4j.spi.AbstractLogger.tryLogMessage(AbstractLogger.java:2198)
> at org.apache.logging.log4j.spi.AbstractLogger.logMessageTrackRecursion(AbstractLogger.java:2152)
> at org.apache.logging.log4j.spi.AbstractLogger.logMessageSafely(AbstractLogger.java:2135)
> at org.apache.logging.log4j.spi.AbstractLogger.logMessage(AbstractLogger.java:2011)
> at org.apache.logging.log4j.spi.AbstractLogger.logIfEnabled(AbstractLogger.java:1983)
> at org.apache.logging.log4j.spi.AbstractLogger.info(AbstractLogger.java:1320)
> at IconParc.IpionServer.IpionServer.main(IpionServer.java:1154)
> {noformat}
> The reason for this behaviour is that the RollingFileAppender explicitely checks for instances of DirectWriteRolloverStrategy instead of DirectFileRolloverStrategy like its Builder does.
> I opened a PR (https://github.com/apache/logging-log4j2/pull/331) that fixes this behavior.
>
>
--
This message was sent by Atlassian Jira
(v8.3.4#803005)