Brian Saville created LOG4J2-973:
------------------------------------

             Summary: log4j.configurationFile doesn't work properly if no 
log4j2.xml in classpath
                 Key: LOG4J2-973
                 URL: https://issues.apache.org/jira/browse/LOG4J2-973
             Project: Log4j 2
          Issue Type: Bug
    Affects Versions: 2.2, 2.1, 2.0.2
         Environment: CentOS 6.2 x64
            Reporter: Brian Saville


h2. TL;DR:
Adding a log4j2.xml file, even if it contained bad configuration, caused the 
{{log4j.configurationFile}} system property to be used correctly.

h2. Long description:

I beat my head against the wall for several hours trying to figure this out, so 
I thought I'd document and file a bug against it since I don't think it's 
proper behavior.  If nothing else is done at least a doc change is in order.

I was *not* including a log4j2.xml file on the classpath at all, but instead 
just defined the {{log4j.configurationFile}} system property as an external 
file (as documented).  The logging configuration consisted of a single file 
appender with a root logger and one or more other loggers.  I did not configure 
any console appenders.  I didn't see anything in the docs stating that you need 
a file on the classpath in addition to this external file.

After starting, log4j2 reported (through the status logger) that it found the 
file and configured all appenders correctly, and even said it started the 
configuration and stopped the default configuration correctly.  However, ALL 
logging output was printed to stdout only.  At times it created the logging 
file it was actually supposed to go to (per file appender configuration), but 
this file was always empty.  Additionally, it seemed to not really load the 
logger configuration, as I saw everything INFO level and above in there, so it 
didn't seem like it was even the default configuration.

Finally I decided to try adding the same logging config file into the classpath 
without using the system property and external logging config file, and it 
worked perfectly.  To top it all off, adding back in the system property 
({{log4j.configurationFile}}) to point to a different logging configuration 
file on the filesystem worked at this point.

I tested this with log4j 2.0.2, 2.1, and 2.2 while I was debugging it, and all 
exhibited the same behavior.

There is someone on SO that experienced [roughly the same 
issue|http://stackoverflow.com/questions/28755518/log4j2-nothing-logged-in-file],
 and I'll add comment shortly linking it back to this ticket just in case.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to