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

Tilman Hausherr updated LOG4J2-2268:
------------------------------------
    Description: 
I did my first migration from log4j 1 to 2; previously I used property and now 
I wanted to use XML. This is my XML file:
{code:xml}
<?xml version="1.0" encoding="UTF-8"?>
<!-- https://logging.apache.org/log4j/2.x/manual/configuration.html -->
<Configuration>
    <Appenders>
        <RollingFile name="A1" fileName="XXX/XXX.log">
            <PatternLayout pattern="%d{dd.MM.yyyy HH:mm:ss} %-5p %C{2}:%L - 
%m%n"/>
            <Policies>
                <SizeBasedTriggeringPolicy size="10 MB"/>
            </Policies>
            <DefaultRolloverStrategy fileIndex="nomax" />
        </RollingFile>
        <Console name="STDOUT" target="SYSTEM_OUT">
            <PatternLayout pattern="%d{dd.MM.yyyy HH:mm:ss} %-5p %C{2}:%L - 
%m%n"/>
        </Console>
    </Appenders>
    <Loggers>
        <Logger name="org.springframework" level="warn" additivity="false">
            <AppenderRef ref="STDOUT"/>
            <AppenderRef ref="A1"/>
        </Logger>
        <Logger name="org.apache.pdfbox.pdmodel.font.PDCIDFontType2" 
level="fatal" additivity="false">
            <AppenderRef ref="STDOUT"/>
            <AppenderRef ref="A1"/>
        </Logger>
        <Root level="info">
            <AppenderRef ref="STDOUT"/>
            <AppenderRef ref="A1"/>
        </Root>
    </Loggers>
</Configuration>
{code}
This brought me this output:
{quote}
2018-02-23 12:28:22,351 main ERROR Could not create plugin of type class 
org.apache.logging.log4j.core.appender.RollingFileAppender for element 
RollingFile org.apache.logging.log4j.core.config.ConfigurationException: 
Arguments given for element RollingFile are invalid
        at 
org.apache.logging.log4j.core.config.plugins.util.PluginBuilder.injectFields(PluginBuilder.java:203)
        at 
org.apache.logging.log4j.core.config.plugins.util.PluginBuilder.build(PluginBuilder.java:121)
        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.impl.Log4jContextFactory.getContext(Log4jContextFactory.java:153)
        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.jcl.LogAdapter.getContext(LogAdapter.java:39)
        at 
org.apache.logging.log4j.spi.AbstractLoggerAdapter.getLogger(AbstractLoggerAdapter.java:46)
        at 
org.apache.logging.log4j.jcl.LogFactoryImpl.getInstance(LogFactoryImpl.java:40)
        at 
org.apache.logging.log4j.jcl.LogFactoryImpl.getInstance(LogFactoryImpl.java:55)
        at org.apache.commons.logging.LogFactory.getLog(LogFactory.java:655)
        at 
org.springframework.context.support.AbstractApplicationContext.<init>(AbstractApplicationContext.java:160)
        at 
org.springframework.context.support.AbstractApplicationContext.<init>(AbstractApplicationContext.java:230)
        at 
org.springframework.context.support.AbstractRefreshableApplicationContext.<init>(AbstractRefreshableApplicationContext.java:92)
        at 
org.springframework.context.support.AbstractRefreshableConfigApplicationContext.<init>(AbstractRefreshableConfigApplicationContext.java:59)
        at 
org.springframework.context.support.AbstractXmlApplicationContext.<init>(AbstractXmlApplicationContext.java:62)
        at 
org.springframework.context.support.ClassPathXmlApplicationContext.<init>(ClassPathXmlApplicationContext.java:141)
        at 
org.springframework.context.support.ClassPathXmlApplicationContext.<init>(ClassPathXmlApplicationContext.java:85)
        at XXXXX.Main.main(Main.java:67)

2018-02-23 12:28:22,359 main ERROR Null object returned for RollingFile in 
Appenders.
2018-02-23 12:28:22,370 main ERROR Unable to locate appender "A1" for logger 
config "org.apache.log4j.xml"
2018-02-23 12:28:22,371 main ERROR Unable to locate appender "A1" for logger 
config "org.springframework"
2018-02-23 12:28:22,371 main ERROR Unable to locate appender "A1" for logger 
config "org.apache.pdfbox.pdmodel.font.PDCIDFontType2"
{quote}
Excerpt of my pom.xml:
{code:xml}
        <dependency>
            <groupId>commons-logging</groupId>
            <artifactId>commons-logging</artifactId>
            <version>1.2</version>
        </dependency>
        <dependency>
            <groupId>org.apache.logging.log4j</groupId>
            <artifactId>log4j-core</artifactId>
            <version>2.10.0</version>
        </dependency>
        <dependency>
            <groupId>org.apache.logging.log4j</groupId>
            <artifactId>log4j-api</artifactId>
            <version>2.10.0</version>
        </dependency>
        <dependency>
            <groupId>org.apache.logging.log4j</groupId>
            <artifactId>log4j-jcl</artifactId>
            <version>2.10.0</version>
        </dependency>
{code}
After some searching, I found out that {{filePattern}} was missing.

So my suggestion is that you output a better error message, here: mandatory 
filePattern parameter is missing.

  was:
I did my first migration from log4j 1 to 2; previously I used property and now 
I wanted to use XML. This is my XML file:
{code:xml}
<?xml version="1.0" encoding="UTF-8"?>
<!-- https://logging.apache.org/log4j/2.x/manual/configuration.html -->
<Configuration>
    <Appenders>
        <RollingFile name="A1" fileName="XXX/XXX.log">
            <PatternLayout pattern="%d{dd.MM.yyyy HH:mm:ss} %-5p %C{2}:%L - 
%m%n"/>
            <Policies>
                <SizeBasedTriggeringPolicy size="10 MB"/>
            </Policies>
            <DefaultRolloverStrategy fileIndex="nomax" />
        </RollingFile>
        <Console name="STDOUT" target="SYSTEM_OUT">
            <PatternLayout pattern="%d{dd.MM.yyyy HH:mm:ss} %-5p %C{2}:%L - 
%m%n"/>
        </Console>
    </Appenders>
    <Loggers>
        <Logger name="org.springframework" level="warn" additivity="false">
            <AppenderRef ref="STDOUT"/>
            <AppenderRef ref="A1"/>
        </Logger>
        <Logger name="org.apache.pdfbox.pdmodel.font.PDCIDFontType2" 
level="fatal" additivity="false">
            <AppenderRef ref="STDOUT"/>
            <AppenderRef ref="A1"/>
        </Logger>
        <Root level="info">
            <AppenderRef ref="STDOUT"/>
            <AppenderRef ref="A1"/>
        </Root>
    </Loggers>
</Configuration>
{code}
This brought me this output:
{code:java}
2018-02-23 12:28:22,351 main ERROR Could not create plugin of type class 
org.apache.logging.log4j.core.appender.RollingFileAppender for element 
RollingFile org.apache.logging.log4j.core.config.ConfigurationException: 
Arguments given for element RollingFile are invalid
        at 
org.apache.logging.log4j.core.config.plugins.util.PluginBuilder.injectFields(PluginBuilder.java:203)
        at 
org.apache.logging.log4j.core.config.plugins.util.PluginBuilder.build(PluginBuilder.java:121)
        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.impl.Log4jContextFactory.getContext(Log4jContextFactory.java:153)
        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.jcl.LogAdapter.getContext(LogAdapter.java:39)
        at 
org.apache.logging.log4j.spi.AbstractLoggerAdapter.getLogger(AbstractLoggerAdapter.java:46)
        at 
org.apache.logging.log4j.jcl.LogFactoryImpl.getInstance(LogFactoryImpl.java:40)
        at 
org.apache.logging.log4j.jcl.LogFactoryImpl.getInstance(LogFactoryImpl.java:55)
        at org.apache.commons.logging.LogFactory.getLog(LogFactory.java:655)
        at 
org.springframework.context.support.AbstractApplicationContext.<init>(AbstractApplicationContext.java:160)
        at 
org.springframework.context.support.AbstractApplicationContext.<init>(AbstractApplicationContext.java:230)
        at 
org.springframework.context.support.AbstractRefreshableApplicationContext.<init>(AbstractRefreshableApplicationContext.java:92)
        at 
org.springframework.context.support.AbstractRefreshableConfigApplicationContext.<init>(AbstractRefreshableConfigApplicationContext.java:59)
        at 
org.springframework.context.support.AbstractXmlApplicationContext.<init>(AbstractXmlApplicationContext.java:62)
        at 
org.springframework.context.support.ClassPathXmlApplicationContext.<init>(ClassPathXmlApplicationContext.java:141)
        at 
org.springframework.context.support.ClassPathXmlApplicationContext.<init>(ClassPathXmlApplicationContext.java:85)
        at XXXXX.Main.main(Main.java:67)

2018-02-23 12:28:22,359 main ERROR Null object returned for RollingFile in 
Appenders.
2018-02-23 12:28:22,370 main ERROR Unable to locate appender "A1" for logger 
config "org.apache.log4j.xml"
2018-02-23 12:28:22,371 main ERROR Unable to locate appender "A1" for logger 
config "org.springframework"
2018-02-23 12:28:22,371 main ERROR Unable to locate appender "A1" for logger 
config "org.apache.pdfbox.pdmodel.font.PDCIDFontType2"
{code}
Excerpt of my pom.xml:
{code:java}
        <dependency>
            <groupId>commons-logging</groupId>
            <artifactId>commons-logging</artifactId>
            <version>1.2</version>
        </dependency>
        <dependency>
            <groupId>org.apache.logging.log4j</groupId>
            <artifactId>log4j-core</artifactId>
            <version>2.10.0</version>
        </dependency>
        <dependency>
            <groupId>org.apache.logging.log4j</groupId>
            <artifactId>log4j-api</artifactId>
            <version>2.10.0</version>
        </dependency>
        <dependency>
            <groupId>org.apache.logging.log4j</groupId>
            <artifactId>log4j-jcl</artifactId>
            <version>2.10.0</version>
        </dependency>
{code}
After some searching, I found out that {{filePattern}} was missing.

So my suggestion is that you output a better error message, here: mandatory 
filePattern parameter is missing.


> Improve error msg if RollingFileAppender element missing
> --------------------------------------------------------
>
>                 Key: LOG4J2-2268
>                 URL: https://issues.apache.org/jira/browse/LOG4J2-2268
>             Project: Log4j 2
>          Issue Type: Improvement
>          Components: Appenders
>    Affects Versions: 2.10.0
>         Environment: W7
>            Reporter: Tilman Hausherr
>            Priority: Minor
>
> I did my first migration from log4j 1 to 2; previously I used property and 
> now I wanted to use XML. This is my XML file:
> {code:xml}
> <?xml version="1.0" encoding="UTF-8"?>
> <!-- https://logging.apache.org/log4j/2.x/manual/configuration.html -->
> <Configuration>
>     <Appenders>
>         <RollingFile name="A1" fileName="XXX/XXX.log">
>             <PatternLayout pattern="%d{dd.MM.yyyy HH:mm:ss} %-5p %C{2}:%L - 
> %m%n"/>
>             <Policies>
>                 <SizeBasedTriggeringPolicy size="10 MB"/>
>             </Policies>
>             <DefaultRolloverStrategy fileIndex="nomax" />
>         </RollingFile>
>         <Console name="STDOUT" target="SYSTEM_OUT">
>             <PatternLayout pattern="%d{dd.MM.yyyy HH:mm:ss} %-5p %C{2}:%L - 
> %m%n"/>
>         </Console>
>     </Appenders>
>     <Loggers>
>         <Logger name="org.springframework" level="warn" additivity="false">
>             <AppenderRef ref="STDOUT"/>
>             <AppenderRef ref="A1"/>
>         </Logger>
>         <Logger name="org.apache.pdfbox.pdmodel.font.PDCIDFontType2" 
> level="fatal" additivity="false">
>             <AppenderRef ref="STDOUT"/>
>             <AppenderRef ref="A1"/>
>         </Logger>
>         <Root level="info">
>             <AppenderRef ref="STDOUT"/>
>             <AppenderRef ref="A1"/>
>         </Root>
>     </Loggers>
> </Configuration>
> {code}
> This brought me this output:
> {quote}
> 2018-02-23 12:28:22,351 main ERROR Could not create plugin of type class 
> org.apache.logging.log4j.core.appender.RollingFileAppender for element 
> RollingFile org.apache.logging.log4j.core.config.ConfigurationException: 
> Arguments given for element RollingFile are invalid
>       at 
> org.apache.logging.log4j.core.config.plugins.util.PluginBuilder.injectFields(PluginBuilder.java:203)
>       at 
> org.apache.logging.log4j.core.config.plugins.util.PluginBuilder.build(PluginBuilder.java:121)
>       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.impl.Log4jContextFactory.getContext(Log4jContextFactory.java:153)
>       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.jcl.LogAdapter.getContext(LogAdapter.java:39)
>       at 
> org.apache.logging.log4j.spi.AbstractLoggerAdapter.getLogger(AbstractLoggerAdapter.java:46)
>       at 
> org.apache.logging.log4j.jcl.LogFactoryImpl.getInstance(LogFactoryImpl.java:40)
>       at 
> org.apache.logging.log4j.jcl.LogFactoryImpl.getInstance(LogFactoryImpl.java:55)
>       at org.apache.commons.logging.LogFactory.getLog(LogFactory.java:655)
>       at 
> org.springframework.context.support.AbstractApplicationContext.<init>(AbstractApplicationContext.java:160)
>       at 
> org.springframework.context.support.AbstractApplicationContext.<init>(AbstractApplicationContext.java:230)
>       at 
> org.springframework.context.support.AbstractRefreshableApplicationContext.<init>(AbstractRefreshableApplicationContext.java:92)
>       at 
> org.springframework.context.support.AbstractRefreshableConfigApplicationContext.<init>(AbstractRefreshableConfigApplicationContext.java:59)
>       at 
> org.springframework.context.support.AbstractXmlApplicationContext.<init>(AbstractXmlApplicationContext.java:62)
>       at 
> org.springframework.context.support.ClassPathXmlApplicationContext.<init>(ClassPathXmlApplicationContext.java:141)
>       at 
> org.springframework.context.support.ClassPathXmlApplicationContext.<init>(ClassPathXmlApplicationContext.java:85)
>       at XXXXX.Main.main(Main.java:67)
> 2018-02-23 12:28:22,359 main ERROR Null object returned for RollingFile in 
> Appenders.
> 2018-02-23 12:28:22,370 main ERROR Unable to locate appender "A1" for logger 
> config "org.apache.log4j.xml"
> 2018-02-23 12:28:22,371 main ERROR Unable to locate appender "A1" for logger 
> config "org.springframework"
> 2018-02-23 12:28:22,371 main ERROR Unable to locate appender "A1" for logger 
> config "org.apache.pdfbox.pdmodel.font.PDCIDFontType2"
> {quote}
> Excerpt of my pom.xml:
> {code:xml}
>         <dependency>
>             <groupId>commons-logging</groupId>
>             <artifactId>commons-logging</artifactId>
>             <version>1.2</version>
>         </dependency>
>         <dependency>
>             <groupId>org.apache.logging.log4j</groupId>
>             <artifactId>log4j-core</artifactId>
>             <version>2.10.0</version>
>         </dependency>
>         <dependency>
>             <groupId>org.apache.logging.log4j</groupId>
>             <artifactId>log4j-api</artifactId>
>             <version>2.10.0</version>
>         </dependency>
>         <dependency>
>             <groupId>org.apache.logging.log4j</groupId>
>             <artifactId>log4j-jcl</artifactId>
>             <version>2.10.0</version>
>         </dependency>
> {code}
> After some searching, I found out that {{filePattern}} was missing.
> So my suggestion is that you output a better error message, here: mandatory 
> filePattern parameter is missing.



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)

Reply via email to