[ 
https://issues.apache.org/jira/browse/LOG4J2-1908?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Remko Popma resolved LOG4J2-1908.
---------------------------------
       Resolution: Fixed
         Assignee: Remko Popma
    Fix Version/s: 2.9

Fixed in master. The above configuration now gives this error:
{code}
2017-06-30 21:26:40,270 main ERROR Could not create plugin of type class 
org.apache.logging.log4j.core.appender.RollingRandomAccessFileAppender for 
element RollingRandomAccessFile 
org.apache.logging.log4j.core.config.ConfigurationException: Configuration has 
multiple incompatible Appenders pointing to the same file 
target/multiIncompatibleAppender.log
        at 
org.apache.logging.log4j.core.appender.OutputStreamManager.narrow(OutputStreamManager.java:134)
        at 
org.apache.logging.log4j.core.appender.rolling.RollingRandomAccessFileManager.getRollingRandomAccessFileManager(RollingRandomAccessFileManager.java:104)
        at 
org.apache.logging.log4j.core.appender.RollingRandomAccessFileAppender$Builder.build(RollingRandomAccessFileAppender.java:125)
        at 
org.apache.logging.log4j.core.appender.RollingRandomAccessFileAppender$Builder.build(RollingRandomAccessFileAppender.java:50)
        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.start(LoggerContext.java:261)
        at 
org.apache.logging.log4j.core.impl.Log4jContextFactory.getContext(Log4jContextFactory.java:239)
        at 
org.apache.logging.log4j.core.config.Configurator.initialize(Configurator.java:159)
        at 
org.apache.logging.log4j.core.config.Configurator.initialize(Configurator.java:131)
        at 
org.apache.logging.log4j.core.config.Configurator.initialize(Configurator.java:101)
        at 
org.apache.logging.log4j.junit.LoggerContextRule$1.evaluate(LoggerContextRule.java:119)
        at org.junit.rules.RunRules.evaluate(RunRules.java:20)
        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:51)
        at 
com.intellij.rt.execution.junit.JUnitStarter.prepareStreamsAndStart(JUnitStarter.java:242)
        at 
com.intellij.rt.execution.junit.JUnitStarter.main(JUnitStarter.java:70)

2017-06-30 21:26:40,273 main ERROR Null object returned for 
RollingRandomAccessFile in Appenders.
{code}


> Cryptic error message when misconfigured with File and 
> RollingRandomAccessFile appenders targeting same file
> ------------------------------------------------------------------------------------------------------------
>
>                 Key: LOG4J2-1908
>                 URL: https://issues.apache.org/jira/browse/LOG4J2-1908
>             Project: Log4j 2
>          Issue Type: Improvement
>          Components: Configurators, Core
>            Reporter: Remko Popma
>            Assignee: Remko Popma
>             Fix For: 2.9
>
>
> When a configuration contains a FileAppender and a 
> RollingRandomAccessFileAppender that target the same file, the below error 
> occurs.
> Admittedly the configuration is wrong, but the error message is misleading or 
> at least not helpful for users. Without intimate understanding of the Log4j 
> internals (how FileManagers work) it is almost impossible to determine that 
> the below error is caused by a misconfiguration, what the problem is and how 
> to fix it.
> The configuration:
> {code}
> <?xml version="1.0" encoding="UTF-8"?>
> <Configuration status="WARN">
>   <properties>
>     <property name="pattern">%d{ISO8601} %r [%t] %-5level %logger{1.} - 
> %msg%n</property>
>   </properties>
>   <Appenders>
>     <Console name="CONSOLE" target="SYSTEM_OUT" follow="true">
>       <PatternLayout pattern="${pattern}" />
>     </Console>
>     <File name="FILE" fileName="logs/app.log">
>       <PatternLayout pattern="${pattern}" />
>     </File>
>     <RollingRandomAccessFile name="ROLLING"
>            fileName="logs/app.log"
>            filePattern="logs/%d{yyyyMMdd}/app-%i.log.gz">
>       <PatternLayout pattern="${pattern}" />
>       <Policies>
>         <OnStartupTriggeringPolicy/>
>         <SizeBasedTriggeringPolicy size="1 GB" />
>         <TimeBasedTriggeringPolicy/>
>       </Policies>
>       <DefaultRolloverStrategy/>
>     </RollingRandomAccessFile>
>   </Appenders>
>   <Loggers>
>     <Root level="DEBUG">
>       <AppenderRef ref="CONSOLE" level="WARN"/>
>       <AppenderRef ref="FILE" />
>     </Root>
>   </Loggers>
> </Configuration>
> {code}
> Gives this error:
> {code}
> 2017-05-11 15:52:55,959 main ERROR Unable to inject fields into builder class 
> for plugin type class 
> org.apache.logging.log4j.core.appender.RollingRandomAccessFileAppender, 
> element RollingRandomAccessFile. java.lang.ClassCastException: 
> org.apache.logging.log4j.core.appender.FileManager cannot be cast to 
> org.apache.logging.log4j.core.appender.rolling.RollingRandomAccessFileManager
>         at 
> org.apache.logging.log4j.core.appender.rolling.RollingRandomAccessFileManager.getRollingRandomAccessFileManager(RollingRandomAccessFileManager.java:87)
>         at 
> org.apache.logging.log4j.core.appender.RollingRandomAccessFileAppender$Builder.build(RollingRandomAccessFileAppender.java:115)
>         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:952)
>         at 
> org.apache.logging.log4j.core.config.AbstractConfiguration.createConfiguration(AbstractConfiguration.java:892)
>         at 
> org.apache.logging.log4j.core.config.AbstractConfiguration.createConfiguration(AbstractConfiguration.java:884)
>         at 
> org.apache.logging.log4j.core.config.AbstractConfiguration.doConfigure(AbstractConfiguration.java:508)
>         at 
> org.apache.logging.log4j.core.config.AbstractConfiguration.initialize(AbstractConfiguration.java:232)
>         at 
> org.apache.logging.log4j.core.config.AbstractConfiguration.start(AbstractConfiguration.java:244)
>         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:152)
>         at 
> org.apache.logging.log4j.core.impl.Log4jContextFactory.getContext(Log4jContextFactory.java:45)
>         at org.apache.logging.log4j.LogManager.getContext(LogManager.java:194)
>         at 
> org.apache.logging.log4j.spi.AbstractLoggerAdapter.getContext(AbstractLoggerAdapter.java:122)
>         at 
> org.apache.logging.log4j.jul.AbstractLoggerAdapter.getContext(AbstractLoggerAdapter.java:34)
>         at 
> org.apache.logging.log4j.spi.AbstractLoggerAdapter.getLogger(AbstractLoggerAdapter.java:46)
>         at 
> org.apache.logging.log4j.jul.LogManager.getLogger(LogManager.java:89)
>         at java.util.logging.LogManager.demandLogger(LogManager.java:551)
>         at java.util.logging.Logger.demandLogger(Logger.java:455)
>         at java.util.logging.Logger.getLogger(Logger.java:502)
>         at 
> com.lmax.disruptor.FatalExceptionHandler.<clinit>(FatalExceptionHandler.java:27)
>         at 
> com.lmax.disruptor.dsl.ExceptionHandlerWrapper.<init>(ExceptionHandlerWrapper.java:8)
>         at com.lmax.disruptor.dsl.Disruptor.<init>(Disruptor.java:66)
>         at com.lmax.disruptor.dsl.Disruptor.<init>(Disruptor.java:105)
>         at 
> org.apache.logging.log4j.core.async.AsyncLoggerDisruptor.start(AsyncLoggerDisruptor.java:92)
>         at 
> org.apache.logging.log4j.core.async.AsyncLoggerContext.start(AsyncLoggerContext.java:75)
>         at 
> org.apache.logging.log4j.core.impl.Log4jContextFactory.getContext(Log4jContextFactory.java:152)
>         at 
> org.apache.logging.log4j.core.impl.Log4jContextFactory.getContext(Log4jContextFactory.java:45)
>         at org.apache.logging.log4j.LogManager.getContext(LogManager.java:194)
>         at 
> org.apache.logging.log4j.spi.AbstractLoggerAdapter.getContext(AbstractLoggerAdapter.java:122)
>         at 
> org.apache.logging.slf4j.Log4jLoggerFactory.getContext(Log4jLoggerFactory.java:43)
>         at 
> org.apache.logging.log4j.spi.AbstractLoggerAdapter.getLogger(AbstractLoggerAdapter.java:46)
>         at 
> org.apache.logging.slf4j.Log4jLoggerFactory.getLogger(Log4jLoggerFactory.java:29)
>         at org.slf4j.LoggerFactory.getLogger(LoggerFactory.java:358)
>         at org.slf4j.LoggerFactory.getLogger(LoggerFactory.java:383)
>         at com.company.project.Main.main(Main.java:1030)
> {code}



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

Reply via email to