You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@logging.apache.org by "Andrey Kurilov (JIRA)" <ji...@apache.org> on 2017/09/08 10:09:00 UTC

[jira] [Commented] (LOG4J2-1928) RollingRandomAccessFileAppender with DirectWriteRolloverStrategy requires a fileName

    [ https://issues.apache.org/jira/browse/LOG4J2-1928?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16158414#comment-16158414 ] 

Andrey Kurilov commented on LOG4J2-1928:
----------------------------------------

The fix doesn't work in v2.9.0
If the "fileName" attribute is left (worked in 2.8.2) the following error message is seen:
??
2017-09-08 13:00:03,245 main ERROR The fileName attribute must not be specified with the DirectWriteRolloverStrategy
??
If the "fileName" attribute is removed, NPE occurs:
??
2017-09-08 13:07:41,398 main ERROR Could not create plugin of type class org.apache.logging.log4j.core.appender.RollingRandomAccessFileAppender for element appender: java.lang.NullPointerException java.lang.NullPointerException
	at org.apache.logging.log4j.core.appender.rolling.RollingRandomAccessFileManager.writeHeader(RollingRandomAccessFileManager.java:90)
	at org.apache.logging.log4j.core.appender.rolling.RollingRandomAccessFileManager.<init>(RollingRandomAccessFileManager.java:75)
	at org.apache.logging.log4j.core.appender.rolling.RollingRandomAccessFileManager$RollingRandomAccessFileManagerFactory.createManager(RollingRandomAccessFileManager.java:240)
	at org.apache.logging.log4j.core.appender.rolling.RollingRandomAccessFileManager$RollingRandomAccessFileManagerFactory.createManager(RollingRandomAccessFileManager.java:189)
	at org.apache.logging.log4j.core.appender.AbstractManager.getManager(AbstractManager.java:113)
	at org.apache.logging.log4j.core.appender.OutputStreamManager.getManager(OutputStreamManager.java:115)
	at org.apache.logging.log4j.core.appender.rolling.RollingRandomAccessFileManager.getRollingRandomAccessFileManager(RollingRandomAccessFileManager.java:109)
	at org.apache.logging.log4j.core.appender.RollingRandomAccessFileAppender$Builder.build(RollingRandomAccessFileAppender.java:131)
	at org.apache.logging.log4j.core.appender.RollingRandomAccessFileAppender$Builder.build(RollingRandomAccessFileAppender.java:52)
	at org.apache.logging.log4j.core.config.plugins.util.PluginBuilder.build(PluginBuilder.java:122)
	at org.apache.logging.log4j.core.config.AbstractConfiguration.createPluginObject(AbstractConfiguration.java:958)
	at org.apache.logging.log4j.core.config.AbstractConfiguration.createConfiguration(AbstractConfiguration.java:898)
	at org.apache.logging.log4j.core.config.AbstractConfiguration.createConfiguration(AbstractConfiguration.java:890)
	at org.apache.logging.log4j.core.config.AbstractConfiguration.doConfigure(AbstractConfiguration.java:513)
	at org.apache.logging.log4j.core.config.AbstractConfiguration.initialize(AbstractConfiguration.java:237)
	at org.apache.logging.log4j.core.config.AbstractConfiguration.start(AbstractConfiguration.java:249)
	at org.apache.logging.log4j.core.LoggerContext.setConfiguration(LoggerContext.java:545)
	at org.apache.logging.log4j.core.LoggerContext.reconfigure(LoggerContext.java:617)
	at org.apache.logging.log4j.core.LoggerContext.reconfigure(LoggerContext.java:634)
	at org.apache.logging.log4j.core.LoggerContext.start(LoggerContext.java:229)
	at org.apache.logging.log4j.core.async.AsyncLoggerContext.start(AsyncLoggerContext.java:76)
	at org.apache.logging.log4j.core.impl.Log4jContextFactory.getContext(Log4jContextFactory.java:242)
	at org.apache.logging.log4j.core.impl.Log4jContextFactory.getContext(Log4jContextFactory.java:45)
	at org.apache.logging.log4j.LogManager.getContext(LogManager.java:174)
	at org.apache.logging.log4j.LogManager.getLogger(LogManager.java:618)
	at com.emc.mongoose.ui.log.Loggers.<clinit>(Loggers.java:15)
	at com.emc.mongoose.tests.system.base.LoggingTestBase.setUp(LoggingTestBase.java:79)
	at com.emc.mongoose.tests.system.base.ConfiguredTestBase.setUp(ConfiguredTestBase.java:36)
	at com.emc.mongoose.tests.system.base.StorageTestBase.setUp(StorageTestBase.java:52)
	at com.emc.mongoose.tests.system.base.ScenarioTestBase.setUp(ScenarioTestBase.java:40)
	at com.emc.mongoose.tests.system.ReadCustomContentVerificationFailTest.setUp(ReadCustomContentVerificationFailTest.java:64)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.lang.reflect.Method.invoke(Method.java:498)
	at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:50)
	at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12)
	at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:47)
	at org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:24)
	at org.junit.internal.runners.statements.RunAfters.evaluate(RunAfters.java:27)
	at org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:325)
	at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:78)
	at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:57)
	at org.junit.runners.ParentRunner$3.run(ParentRunner.java:290)
	at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:71)
	at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:288)
	at org.junit.runners.ParentRunner.access$000(ParentRunner.java:58)
	at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:268)
	at org.junit.runners.ParentRunner.run(ParentRunner.java:363)
	at org.junit.runners.Suite.runChild(Suite.java:128)
	at org.junit.runners.Suite.runChild(Suite.java:27)
	at org.junit.runners.ParentRunner$3.run(ParentRunner.java:290)
	at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:71)
	at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:288)
	at org.junit.runners.ParentRunner.access$000(ParentRunner.java:58)
	at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:268)
	at org.junit.runners.ParentRunner.run(ParentRunner.java:363)
	at org.junit.runner.JUnitCore.run(JUnitCore.java:137)
	at com.intellij.junit4.JUnit4IdeaTestRunner.startRunnerWithArgs(JUnit4IdeaTestRunner.java:68)
	at com.intellij.rt.execution.junit.IdeaTestRunner$Repeater.startRunnerWithArgs(IdeaTestRunner.java:47)
	at com.intellij.rt.execution.junit.JUnitStarter.prepareStreamsAndStart(JUnitStarter.java:242)
	at com.intellij.rt.execution.junit.JUnitStarter.main(JUnitStarter.java:70)
??


> RollingRandomAccessFileAppender with DirectWriteRolloverStrategy requires a fileName
> ------------------------------------------------------------------------------------
>
>                 Key: LOG4J2-1928
>                 URL: https://issues.apache.org/jira/browse/LOG4J2-1928
>             Project: Log4j 2
>          Issue Type: Bug
>    Affects Versions: 2.8.1
>            Reporter: Lucas Ventura Carro
>            Assignee: Ralph Goers
>             Fix For: 2.9.0
>
>
> Following the docs about [RollingRandomAccessFileAppender|https://logging.apache.org/log4j/2.x/manual/appenders.html#RollingRandomAccessFileAppender] with a [DirectWrite rollover|https://logging.apache.org/log4j/2.x/manual/appenders.html#RolloverStrategies], the config should be:
> {code}
> <RollingRandomAccessFile append="true" filePattern="application.log.%i" name="json-log">
>     <filters>
>         <ThresholdFilter level="INFO" onMatch="ACCEPT" onMismatch="DENY"/>
>     </filters>
> 	<PatternLayout>
> 		<Pattern>%m%n</Pattern>
> 	</PatternLayout>
>     <Policies>
>         <SizeBasedTriggeringPolicy size="10 MB"/>
>     </Policies>
>     <DirectWriteRolloverStrategy maxFiles="10"/>
> </RollingRandomAccessFile>
> {code}
> But then console shows:
> {noformat}
> 2017-06-01 14:31:04,396 main ERROR No filename was provided for FileAppender with name json-log
> 2017-06-01 14:31:04,406 main ERROR Null object returned for RollingRandomAccessFile in appenders.
> 2017-06-01 14:31:04,417 main ERROR Unable to locate appender "json-log" for logger config "root"
> {noformat}
> If adding a {{fileName}} parameter, the logger can be used but the file is not rolling (same as LOG4J2-1906).



--
This message was sent by Atlassian JIRA
(v6.4.14#64029)