logging-log4j-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Gerald <gerald...@yahoo.com.sg>
Subject Re: log4j.properties gets loaded twice causing rollling to fail
Date Sat, 12 Jul 2014 16:04:26 GMT
Hi 

Could I trouble you to explain further why putting the application log4j.properties in WEB-INF/classes,
as opposed to WEB-INF/classes/properties, would prevent the webapp classloader from seeing
the tomcat's log4j.properties?

Gerald

> On 11 Jul, 2014, at 11:27 pm, "Jacob Kjome" <hoju@visi.com> wrote:
> 
> 
> Why don't you place your webapp's log4j.properties file in WEB-INF/classes instead of
WEB-INF/classes/properties?  That way, the webapp classloader won't ever see the tomcat log4j.properties,
thus no rolling file appender conflicts.
> 
> Jake
> 
> On Fri, 11 Jul 2014 11:16:41 +0800
>  guowei <geraldlsg@yahoo.com.sg> wrote:
>> Dear all,
>> I am using log4j for tomcat internal logging and also application logging.
>> I followed Tomcat's instruction to configure log4j rolling and I also have configured
my application to have its own log4j rolling.
>> log4j.jar is in both Tomcat's lib and web application's lib, each have their respective
log4j.properties
>> I enabled -Dlog4j.debug and I can see the sequence of the events
>> 1) log4j.properties for the tomcat gets loaded by Tomcat's StandardClassLoader
>> 2) the same log4j.properties for tomcat gets loaded by the Tomcat's WebappClassLoader
>> 3) application's log4j.properties is loaded
>> Between 1) and 2) I can see the tomcat files being rolled ( I intentionally set DailyRollingAppender
to yyyy-MM-dd-HH-mm and DEBUG level to make sure lots of things gets logged). Rolling was
working well. Files were rolled on the minute
>> However, when step 2) kicks in, the rolling of tomcat files failed. I reckon that
the moment the the same log4j.properties is loaded, there is a conflict since the same appenders
are referred twice.
>> I am not certain has it anything to do with the tomcat's log4j configuration or appliation's
log4j configuration. The Application's log files are rolled correctly.
>> Would appreciate if anyone can enlighten me.
>> -----Dlog4j.debug output----
>> log4j: Trying to find [log4j.xml] using context classloader org.apache.catalina.loader.StandardClassLoader@1529d183.
>> log4j: Trying to find [log4j.xml] using org.apache.catalina.loader.StandardClassLoader@1529d183
class loader.
>> log4j: Trying to find [log4j.xml] using ClassLoader.getSystemResource().
>> log4j: Trying to find [log4j.properties] using context classloader org.apache.catalina.loader.StandardClassLoader@1529d183.
>> log4j: Using URL [file:/C:\Apache\Tomcat/lib/log4j.properties] for automatic log4j
configuration.
>> log4j: Reading configuration from URL file:/C:\Apache\Tomcat/lib/log4j.properties
>> log4j: Parsing for [root] with value=[WARN,CATALINA,LOCALHOST,MANAGER,HOST-MANAGER,stdout,stderr].
>> log4j: Level token is [WARN].
>> log4j: Category root set to WARN
>> log4j: Parsing appender named "CATALINA".
>> log4j: Parsing layout options for "CATALINA".
>> log4j: Setting property [conversionPattern] to [%d [%t] %-5p %c- %m%n].
>> log4j: End of parsing for "CATALINA".
>> log4j: Setting property [encoding] to [UTF-8].
>> log4j: Setting property [datePattern] to ['.'yyyy-MM-dd-HH-mm'.log'].
>> log4j: Setting property [file] to [C:\Apache\Tomcat/logs/catalina].
>> log4j: Setting property [append] to [true].
>> log4j: setFile called: C:\Apache\Tomcat/logs/catalina, true
>> log4j: setFile ended
>> log4j: Appender [CATALINA] to be rolled on top of every minute.
>> log4j: Parsed "CATALINA" options.
>> log4j: Handling log4j.additivity.org.apache.catalina.core.ContainerBase.[Catalina].[localhost]=[null]
>> log4j: Finished configuring.
>> .
>> .
>> #Parsing for rest of the file
>> .
>> .
>> log4j: Parsing for [org.apache.catalina.core.ContainerBase.[Catalina].[localhost].[host-manager]]
with value=[WARN, HOST-MANAGER].
>> log4j: Level token is [WARN].
>> log4j: Category org.apache.catalina.core.ContainerBase.[Catalina].[localhost].[host-manager]
set to WARN
>> log4j: Parsing appender named "HOST-MANAGER".
>> delegate: false
>>   repositories:
>>     /WEB-INF/classes/
>> ----------> Parent Classloader:
>> org.apache.catalina.loader.StandardClassLoader@6c79fa4f
>> .
>> log4j: Trying to find [log4j.xml] using WebappClassLoader
>>   context: /mya
>>   delegate: false
>>   repositories:
>>     /WEB-INF/classes/
>> ----------> Parent Classloader:
>> org.apache.catalina.loader.StandardClassLoader@6c79fa4f
>> class loader.
>> log4j: Trying to find [log4j.xml] using ClassLoader.getSystemResource().
>> log4j: Trying to find [log4j.properties] using context classloader WebappClassLoader
>>   context: /mya
>>   delegate: false
>>   repositories:
>>     /WEB-INF/classes/
>> ----------> Parent Classloader:
>> org.apache.catalina.loader.StandardClassLoader@6c79fa4f
>> .
>> log4j: Using URL [file://C:\Apache\Tomcat/lib/log4j.properties] for automatic log4j
configuration.
>> log4j: Using URL [file:/C:\Apache\Tomcat/lib/log4j.properties] for automatic log4j
configuration.
>> log4j: log4j: Parsing for [root] with value=[WARN,CATALINA,LOCALHOST,MANAGER,HOST-MANAGER,stdout,stderr].
>> log4j: Level token is [WARN].
>> Reading configuration from URL file:/C:\Apache\Tomcat/lib/log4j.properties
>> log4j: Category root set to WARN
>> log4j: Parsing appender named "CATALINA".
>> log4j: Parsing layout options for "CATALINA".
>> log4j: Setting property [conversionPattern] to [%d [%t] %-5p %c- %m%n].
>> log4j: End of parsing for "CATALINA".
>> log4j: Setting property [encoding] to [UTF-8].
>> log4j: Setting property [datePattern] to ['.'yyyy-MM-dd-HH-mm'.log'].
>> log4j: Setting property [file] to [C:\Apache\Tomcat/logs/catalina].
>> log4j: Setting property [append] to [true].
>> log4j: setFile called: C:\Apache\Tomcat/logs/catalina, true
>> log4j: setFile ended
>> log4j: Appender [CATALINA] to be rolled on top of every minute.
>> log4j: Parsed "CATALINA" options.
>> log4j: Handling log4j.additivity.org.apache.catalina.core.ContainerBase.[Catalina].[localhost]=[null]
>> log4j: Finished configuring.
>> .
>> .
>> #Parsing for rest of the appenders
>> .
>> .
>> log4j: Parsing for [org.apache.catalina.core.ContainerBase.[Catalina].[localhost].[host-manager]]
with value=[WARN, HOST-MANAGER].
>> log4j: Level token is [WARN].
>> log4j: Category org.apache.catalina.core.ContainerBase.[Catalina].[localhost].[host-manager]
set to WARN
>> log4j: Parsing appender named "HOST-MANAGER".
>> .
>> .
>> .
>> log4j: Reading configuration from URL file:/C:\Apache\Tomcat/webapps/mya/WEB-INF/classes/properties/log4j.properties
>> log4j: Parsing for [org] with value=[INFO, DA, stdout].
>> log4j: Level token is [INFO].
>> log4j: Category org set to INFO
>> log4j: Parsing appender named "DA".
>> log4j: Parsing layout options for "DA".
>> log4j: Setting property [conversionPattern] to [%-5p [%t] [%X{userID}] %d{dd-MM-yyyy
HH:mm:ss:SSS} [%30c{1}] - %m  %n].
>> log4j: End of parsing for "DA".
>> log4j: Setting property [append] to [true].
>> log4j: Setting property [file] to [C:\Apache\Tomcat/logs/mya.log].
>> log4j: Setting property [datePattern] to ['.'yyyy-MM-dd-HH].
>> log4j: setFile called: C:\Apache\Tomcat/logs/mya.log, true
>> log4j: setFile ended
>> log4j: Appender [DA] to be rolled on top of every hour.
>> log4j: Parsed "DA" options.
>> log4j: Parsing appender named "stdout".
>> log4j: Parsing layout options for "stdout".
>> log4j: Setting property [conversionPattern] to [%-5p [%t] [%X{userID}] %d{dd-MM-yyyy
HH:mm:ss:SSS} [%30c{1}] - %m  %n].
>> log4j: End of parsing for "stdout".
>> log4j: Parsed "stdout" options.
>> log4j: Handling log4j.additivity.org=[null]
>> .
>> .
>> .
>> #parsing of the application's log4j
>> .
>> .
>> .
>> log4j:ERROR Failed to rename [C:\Apache\Tomcat/logs/catalina] to [C:\Apache\Tomcat/logs/catalina.2014-07-10-17-09-20.log].
>> log4j:ERROR Failed to rename [C:\Apache\Tomcat/logs/localhost] to [C:\Apache\Tomcat/logs/localhost.2014-07-10-17-09-20.log].
>> log4j:ERROR Failed to rename [C:\Apache\Tomcat/logs/manager] to [C:\Apache\Tomcat/logs/manager.2014-07-10-17-09-20.log].
>> log4j:ERROR Failed to rename [C:\Apache\Tomcat/logs/host-manager] to [C:\Apache\Tomcat/logs/host-manager.2014-07-10-17-09-20.log].
>> log4j:ERROR Failed to rename [C:\Apache\Tomcat/logs/stdout] to [C:\Apache\Tomcat/logs/stdout.2014-07-10-17-09-20.log].
>> log4j:ERROR Failed to rename [C:\Apache\Tomcat/logs/stderr] to [C:\Apache\Tomcat/logs/stderr.2014-07-10-17-09-20.log].
>> ----------------------------------
>> ----tomcat log4j properties----
>> log4j.rootLogger=INFO,CATALINA,LOCALHOST,MANAGER,HOST-MANAGER,stdout,stderr
>> # Define all the appenders
>> log4j.appender.CATALINA=org.apache.log4j.DailyRollingFileAppender
>> log4j.appender.CATALINA.File=${catalina.base}/logs/catalina
>> log4j.appender.CATALINA.Append=true
>> log4j.appender.CATALINA.Encoding=UTF-8
>> log4j.appender.CATALINA.DatePattern = '.'yyyy-MM-dd-HH-mm'.log'
>> log4j.appender.CATALINA.layout = org.apache.log4j.PatternLayout
>> log4j.appender.CATALINA.layout.ConversionPattern = %d [%t] %-5p %c- %m%n
>> .
>> .
>> .
>> log4j.appender.stdout=org.apache.log4j.DailyRollingFileAppender
>> log4j.appender.stdout.File=${catalina.base}/logs/stdout
>> log4j.appender.stdout.Append=true
>> log4j.appender.stdout.Encoding=UTF-8
>> log4j.appender.stdout.DatePattern = '.'yyyy-MM-dd-HH-mm'.log'
>> log4j.appender.stdout.layout = org.apache.log4j.PatternLayout
>> log4j.appender.stdout.layout.ConversionPattern = %d [%t] %-5p %c- %m%n
>> # Configure which loggers log to which appenders
>> log4j.logger.org.apache.catalina.core.ContainerBase.[Catalina].[localhost]=DEBUG,
CATALINA
>> log4j.logger.org.apache.catalina.core.ContainerBase.[Catalina].[localhost].[\manager]=DEBUG,
MANAGER
>> log4j.logger.org.apache.catalina.core.ContainerBase.[Catalina].[localhost].[\host-manager]=DEBUG,
HOST-MANAGER
>> --------end tomcat log4j properties----
>> ---my application's log4j---
>> log4j.log.dir=${catalina.home}/logs
>> #Application Log
>> log4j.logger.ou.org.to=ALL, DA, stdout
>> log4j.logger.aud=ALL,AudAppender, stdout
>> log4j.logger.ou.org.to.osf.core.aop.MethodTrace=ALL, MethodTraceAppender, stdout
>> log4j.logger.ou.org.to.osf.core.aop.PerfMonitor=ALL, PerfAppender, stdout
>> log4j.appender.stdout=org.apache.log4j.ConsoleAppender
>> log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
>> log4j.appender.stdout.layout.ConversionPattern=%-5p [%t] [%X{userID}] %d{dd-MM-yyyy
HH:mm:ss:SSS} [%30c{1}] - %m  %n
>> log4j.appender.DA=org.apache.log4j.DailyRollingFileAppender
>> log4j.appender.DA.file=${log4j.log.dir}/mya.log
>> log4j.appender.DA.layout=org.apache.log4j.PatternLayout
>> log4j.appender.DA.layout.ConversionPattern=%-5p [%t] [%X{userID}] %d{dd-MM-yyyy HH:mm:ss:SSS}
[%30c{1}] - %m  %n
>> log4j.appender.DA.DatePattern='.'yyyy-MM-dd-HH
>> log4j.appender.DA.append=true
>> --------------------------------------
>> ---------------------------------------------------------------------
>> To unsubscribe, e-mail: log4j-user-unsubscribe@logging.apache.org
>> For additional commands, e-mail: log4j-user-help@logging.apache.org
> 
> 
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: log4j-user-unsubscribe@logging.apache.org
> For additional commands, e-mail: log4j-user-help@logging.apache.org
> 

---------------------------------------------------------------------
To unsubscribe, e-mail: log4j-user-unsubscribe@logging.apache.org
For additional commands, e-mail: log4j-user-help@logging.apache.org


Mime
View raw message