Hi Jake, 

Thank you for the inputs/ advise.
I will look into fixing it with your suggestions.

Dear all, 

also thank you for reading my earlier posts and suggestions.

> On 14 Jul, 2014, at 10:39 pm, "Jacob Kjome" <h...@visi.com> wrote:
> 
> No.  More likely, there some code in your app performing manual configuration.
> 
> Jake
> 
> 
> On Sun, 13 Jul 2014 16:31:35 +0800
>  Gerald <gerald...@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" <h...@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 <gerald...@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" <h...@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 <gerald...@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-unsubscr...@logging.apache.org
>>>>>> For additional commands, e-mail: log4j-user-h...@logging.apache.org
>>>>> ---------------------------------------------------------------------
>>>>> To unsubscribe, e-mail: log4j-user-unsubscr...@logging.apache.org
>>>>> For additional commands, e-mail: log4j-user-h...@logging.apache.org
>>>> ---------------------------------------------------------------------
>>>> To unsubscribe, e-mail: log4j-user-unsubscr...@logging.apache.org
>>>> For additional commands, e-mail: log4j-user-h...@logging.apache.org
>>> ---------------------------------------------------------------------
>>> To unsubscribe, e-mail: log4j-user-unsubscr...@logging.apache.org
>>> For additional commands, e-mail: log4j-user-h...@logging.apache.org
>> ---------------------------------------------------------------------
>> To unsubscribe, e-mail: log4j-user-unsubscr...@logging.apache.org
>> For additional commands, e-mail: log4j-user-h...@logging.apache.org
> 
> 
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: log4j-user-unsubscr...@logging.apache.org
> For additional commands, e-mail: log4j-user-h...@logging.apache.org
> 

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

Reply via email to