logging-log4j-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Jacob Kjome" <h...@visi.com>
Subject Re: log4j.properties gets loaded twice causing rollling to fail
Date Mon, 14 Jul 2014 14:39:13 GMT
No.  More likely, there some code in your app performing manual configuration.

Jake


On Sun, 13 Jul 2014 16:31:35 +0800
 Gerald <geraldlsg@yahoo.com.sg> wrote:
> Hi 
> so in my case, because log4j.properties was not found in my webapps 
>WEB-INF/classes, the webapp classloader then went to look for the 
>log4j.properties in my tomcat. this second reloading causes the rolling to 
>fail. 
> 
> I see that subsequently the log4j.properties of my webapp (in 
>WEB-INF/classes/properties) was loaded towards the end, so can I infer the 
>following?
> 
> The webapp classloader first tries to load all config files in 
>WEB-INF/classes,and because log4j properties was not found , then goes back 
>to (re)load log4j.properties in the tomcat's lib and then comes back to 
>WEB-INF/classes/* to load the remaining configs? and since the 
>log4j.properties was found in WEB-INF/classes/properties it was eventually 
>loaded.
> 
> Regards.
> 
>> On Sun 13 Jul, 2014, at 12:24 pm, "Jacob Kjome" <hoju@visi.com> wrote:
>> 
>> 
>> Because Log4j, by default, looks for config files in the default package. 
>> Furthermore, because of Tomcat's child-first classloading behavior, if you 
>>place log4j.properties in the default package of the webapp (WEB-INF/classes) 
>>it won't bother looking in the parent classloader since it will have already 
>>found the config file in the webapp classloader.
>> 
>> Note, however, that log4j.xml takes precedence over log4j.properties.  So, 
>>if you have log4j.xml in Tomcat's classpath (in the default package), then 
>>even if you have log4j.properties in the webapp classpath, it will use 
>>log4j.xml from the server classpath.  If that case, you'd need log4j.xml in 
>>the webapp's default package to override the server's log4j.xml.  Just 
>>thought I'd point that out.
>> 
>> 
>> Jake
>> 
>> On Sun, 13 Jul 2014 00:04:26 +0800
>>  Gerald <geraldlsg@yahoo.com.sg> wrote:
>>> 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
>> 
>> 
>> ---------------------------------------------------------------------
>> 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