Maarten, a) In my source tree, it is in webapp/src/main/resources/log4j.properties. When deployed, it ends up in WEB-INF/classes/log4j.properties b) yes, log4j-1.2.15.jar
log4j is working fine, I can get a root logger and log to it. The problem seems that the wicket infrastructure is using slf4j and somehow, tomcat6 is passing its catalina.out as a root logger to log4j, rather than the log4j root logger. I am not a boffin on slf4j and there seems to be little documentation on how to integrate slf4j into tomcat, rather than log4j. I am sure there is somebody who is using tomcat, wicket and slf4j/log4j in production? P On Mon, Jul 27, 2009 at 7:35 PM, Maarten Bosteels <[email protected]>wrote: > a) Where does the log4j.properties file for your webapp reside ? > b) Do you have a log4j.jar in WEB-INF/lib/ ? > > M. > > > On Mon, Jul 27, 2009 at 4:45 PM, pieter claassen < > [email protected]> wrote: > >> I am sure something is broken in tomcat. This is not a dependency issue as >> the build runs file and manually logging info with log4j also works (see >> below). The problem seems when wicket logs using slf4j and this only goes >> to >> catalina.log (I cannot get this redirected to my own log file). >> >> If I understand this correctly, wicket uses slf4j to log its own >> internals. >> With tomcat6, I am supposed to then configure log4j (or any adapter that I >> want to) to get that information to the location I would like to (a local >> text log file). >> >> I am trying to enable wicket's requestlog debugging and directing the >> output >> to my application log file for later inspection. >> >> If I run the following code, I get a message in catalina.out (I also get >> all >> the debug information from wicket requestlogger on catalina.out) >> >> Logger logger=LoggerFactory.getLogger(Logger.ROOT_LOGGER_NAME); >> logger.info("AUTH PAGE ACCESSED"); >> >> When I run the code under a debugger, I can see that logger points to >> catalina.out, so clearly I failed to point rootLogger to another file with >> either of my log4j.properties settings. >> >> Note however, that if I use org.apache.log4j.Logger then I can correctly >> dump logging infor to my target file >> >> Logger.getRootLogger().info("AUTHPAGE Logged with >> Logger.getRootLogger()"); >> >> Here is my question: >> >> 1. What is the correct procedure to enable request logging with wicket and >> tomcat so that each of my applications dumps its request data to a >> specific >> text file? >> >> Thanks for all the feedback so far. >> Pieter >> >> >> here is my log4j.properties in my tomcat lib directory >> >> log4j.rootLogger=INFO, R >> log4j.appender.R=org.apache.log4j.RollingFileAppender >> log4j.appender.R.File=${catalina.home}/logs/tomcat.log >> log4j.appender.R.MaxFileSize=10MB >> log4j.appender.R.MaxBackupIndex=10 >> log4j.appender.R.layout=org.apache.log4j.PatternLayout >> log4j.appender.R.layout.ConversionPattern=%p %t %c - %m%n >> log4j.logger.org.apache.catalina=INFO, R >> >> log4j.logger.org.apache.catalina.core.ContainerBase.[Catalina].[localhost]=INFO, >> R >> log4j.logger.org.apache.catalina.core=INFO, R >> log4j.logger.org.apache.catalina.session=INFO, R >> >> Here is my application log4j.properties file. >> >> log4j.rootLogger=INFO,R >> log4j.category.org.apache.wicket.protocol.http.RequestLogger=INFO >> log4j.logger.org.apache.wicket=INFO >> log4j.logger.org.apache.wicket.protocol.http.HttpSessionStore=INFO >> log4j.logger.org.apache.wicket.version=INFO >> log4j.logger.org.apache.wicket.RequestCycle=INFO >> log4j.appender.R=org.apache.log4j.RollingFileAppender >> log4j.appender.R.File=/var/log/${application.name}/application.log >> log4j.appender.R.MaxFileSize=10MB >> log4j.appender.R.MaxBackupIndex=10 >> log4j.appender.R.layout=org.apache.log4j.PatternLayout >> log4j.appender.R.layout.ConversionPattern=%p %t %c - log file%m%n >> >> >> >> On Mon, Jul 27, 2009 at 12:00 PM, Maarten Bosteels >> <[email protected]>wrote: >> >> > On Fri, Jul 24, 2009 at 3:47 PM, pieter claassen <[email protected] >> > >wrote: >> > >> > > I think that slf4j is not working in my setup and it might have >> nothing >> > to >> > > do with Tomcat. As a matter of fact, I assume I don't even have to >> have >> > > log4j or slf4j working with tomcat, but that as long as my POM >> references >> > > the correct dependencies, my application should log correctly? >> > > >> > > To overcome the following error, I had to upgrade by slf4j and log4j >> deps >> > > to >> > > the latest version. >> > > >> > > Caused by: java.lang.IllegalAccessError: tried to access field >> > > org.slf4j.impl.StaticLoggerBinder.SINGLETON from class >> > > org.slf4j.LoggerFactory >> > > >> > > These are my maven deps. >> > > >> > > <dependency> >> > > <groupId>org.slf4j</groupId> >> > > <artifactId>slf4j-log4j12</artifactId> >> > > <version>1.5.6</version> >> > > </dependency> >> > > <dependency> >> > > <groupId>org.slf4j</groupId> >> > > <artifactId>slf4j-api</artifactId> >> > > <version>1.5.6</version> >> > > </dependency> >> > >> > >> > You still need log4j itself. add this dependency: >> > >> > <dependency> >> > <groupId>log4j</groupId> >> > <artifactId>log4j</artifactId> >> > <version>1.2.14</version> >> > </dependency> >> > >> > Maarten >> > >> > >> > > >> > > >> > > I see the same behaviour in Glassfish and tomcat. Does anybody have >> > > slf4j-1.5.6 working with log4j-1.2.14? >> > > >> > > I am stumped?! >> > > P >> > > >> > > >> > > On Fri, Jul 24, 2009 at 9:22 AM, pieter claassen < >> [email protected] >> > > >wrote: >> > > >> > > > I am trying to get my application to log to a separate file with the >> > > > following log4j.properties (server is tomcat6 in netbeans). I >> enabled >> > the >> > > > following in my wicketapplication. >> > > > >> > > > getRequestLoggerSettings().setRequestLoggerEnabled(true); >> > > > >> > > > What I find is that catalina.{date}.out logs the requests correctly, >> > but >> > > I >> > > > get tomcat startup info in my logfile and then nothing else. >> > > > >> > > > Any ideas? >> > > > >> > > > Thanks, >> > > > Pieter >> > > > >> > > > /var/log/webapp/application.log >> > > > ======================== >> > > > >> > > > 2009-07-24 09:21:28,052 INFO - ContextLoader - Root >> > > > WebApplicationContext: initialization started >> > > > 2009-07-24 09:21:28,082 INFO - XmlWebApplicationContext - >> Refreshing >> > > > >> > org.springframework.web.context.support.xmlwebapplicationcont...@1077092 >> > > : >> > > > display name [Root WebApplicationContext]; startup date [Fri Jul 24 >> > > 09:21:28 >> > > > CEST 2009]; root of context hierarchy >> > > > 2009-07-24 09:21:28,134 INFO - XmlBeanDefinitionReader - Loading >> > XML >> > > > bean definitions from ServletContext resource >> > > > [/WEB-INF/WicketApplicationDefinition.xml] >> > > > 2009-07-24 09:21:28,555 INFO - XmlWebApplicationContext - Bean >> > factory >> > > > for application context >> > > > >> > >> [org.springframework.web.context.support.xmlwebapplicationcont...@1077092 >> > > ]: >> > > > >> > > >> > >> org.springframework.beans.factory.support.defaultlistablebeanfact...@1ab5e0b >> > > > 2009-07-24 09:21:28,582 INFO - DefaultListableBeanFactory - >> > > > Pre-instantiating singletons in >> > > > >> > > >> > >> org.springframework.beans.factory.support.defaultlistablebeanfact...@1ab5e0b >> > > : >> > > > defining beans [myDataSource,appConfig,WicketApplication]; root of >> > > factory >> > > > hierarchy >> > > > 2009-07-24 09:21:29,172 INFO - ContextLoader - Root >> > > > WebApplicationContext: initialization completed in 1120 ms >> > > > >> > > > >> > > > log4j.properties >> > > > ============== >> > > > log4j.rootLogger=INFO, file >> > > > >> > > > log4j.appender.file=org.apache.log4j.RollingFileAppender >> > > > log4j.appender.file.maxFileSize=100KB >> > > > log4j.appender.file.maxBackupIndex=5 >> > > > log4j.appender.file.File=/var/log/${application.name >> }/application.log >> > > > log4j.appender.file.layout=org.apache.log4j.PatternLayout >> > > > log4j.appender.file.layout.ConversionPattern=%d %-5p - %-26.26c{1} - >> > %m\n >> > > > >> > > > >> > > > log4j.catagory.org.apache.wicket.protocol.http.RequestLogger=INFO >> > > > log4j.logger.org.apache.wicket=INFO >> > > > log4j.logger.org.apache.wicket.protocol.http.HttpSessionStore=INFO >> > > > log4j.logger.org.apache.wicket.version=INFO >> > > > log4j.logger.org.apache.wicket.RequestCycle=INFO >> > > > >> > > > -- >> > > > Pieter Claassen >> > > > >> > > > >> > > >> > > >> > > -- >> > > Pieter Claassen >> > > musmato.com >> > > >> > >> >> >> >> -- >> Pieter Claassen >> musmato.com >> > > -- Pieter Claassen musmato.com
