Pid, That's exactly what I tried:
------------- handlers = 1catalina.org.apache.juli.FileHandler, 2localhost.org.apache.juli.FileHandler, 3manager.org.apache.juli.FileHandler, 4host-manager.org.apache.juli.FileHandler, 5my-webapp.org.apache.juli.FileHandler, java.util.logging.ConsoleHandler 5my-webapp.org.apache.juli.FileHandler.level = FINE 5my-webapp.org.apache.juli.FileHandler.directory = ${catalina.base}/logs 5my-webapp.org.apache.juli.FileHandler.prefix = my-webapp. org.apache.catalina.core.ContainerBase.[Catalina].[localhost].[/my-webapp].level = INFO org.apache.catalina.core.ContainerBase.[Catalina].[localhost].[/my-webapp].handlers = 5my-webapp.org.apache.juli.FileHandler ------------- When I fire up tomcat, it does create my-webapp.2011-10-11.log, and it logs: Oct 11, 2011 8:47:20 AM org.apache.catalina.core.ApplicationContext log INFO: Initializing Spring FrameworkServlet 'dispatcher' ...but then the rest of my webapp's output from then on goes to catalina.out -- until tomcat shutdown, at which point this gets logged to my-webapp.2011-10-11.log: Oct 11, 2011 8:48:27 AM org.apache.catalina.core.ApplicationContext log INFO: Destroying Spring FrameworkServlet 'dispatcher' Oct 11, 2011 8:48:28 AM org.apache.catalina.core.ApplicationContext log INFO: Closing Spring root WebApplicationContext I'm confused as to why everything else is going to catalina.out...any advice? Thanks, Dan On Tue, Oct 11, 2011 at 8:36 AM, Pid <p...@pidster.com> wrote: > On 11/10/2011 07:28, Dan Checkoway wrote: > > Hello, > > > > I run several webapps under one instance of tomcat (7.0.21 currently, > fwiw), > > and each webapp uses JDK logging and needs to log to its own separate log > > file. I accomplish this by placing logging.properties in > WEB-INF/classes, > > and an example of how it's set up is: > > > > handlers = org.apache.juli.FileHandler > > > > org.apache.juli.FileHandler.level = FINE > > org.apache.juli.FileHandler.directory = ${catalina.base}/logs > > org.apache.juli.FileHandler.prefix = my-webapp. > > org.apache.juli.FileHandler.formatter = > > com.mycompany.logging.MyCustomFormatter > > > > ...all of my logging levels... > > You can configure the main logging.properties to output separate files > per application, as per: > > http://tomcat.apache.org/tomcat-6.0-doc/logging.html > > The Manager application is configured like this. > > > p > > > (and fwiw, my custom logging formatter lives in a jar that I place in > > $TOMCAT_HOME/endorsed) > > > > It works great. The challenge I face, however, is that I deploy my > webapps > > as .war files, and I'd like to be able to deploy the same exact .war file > to > > different environments...dev, test, staging, production. And I'd like to > be > > able to use different logging level config in each of those environments. > > As it stands right now, I'm sorta confined to that single instance of > > logging.properties that gets "built into" my webapp. I want to > > "externalize" this moving part if possible. > > > > I played around with omitting logging.properties from my webapp, and > instead > > using just $TOMCAT_HOME/conf/logging.properties, but (a) I wasn't able to > > get it to work the same as it's working right now, and (b) that funnels > me > > into "sharing" logging level config across my webapps (in other words, > > webapp 1 can't have a different logging level for package x.y.z than > webapp > > 2). Forget (b) for the time being, since I can live with shared logging > > levels across webapps. The main issue I'm having with this approach is > that > > I can't seem to get *all* of my logging to go to my webapp-specific log > > file. Some stuff still gets logged to catalina.out. > > > > So... > > > > 1. Is it currently possible to do what I'm trying to do? Per-webapp > logging > > control without using WEB-INF/classes/logging.properties? I could really > > use a working example if this is doable. > > > > 2. Is there any other hook I can take advantage of (i.e. a context > listener > > or something), by which my code can get invoked prior to JULI > initializing > > for my webapp, where I might be able to override the > > java.util.logging.config.file system property, or something like that? > > > > 3. If neither of those options is possible, how feasible would it be to > add > > a feature to tomcat, where you can configure a path to logging.properties > > (in theory classpath: or file: style) on a per-webapp basis? i.e. in > > conf/server.xml in the <Context>. > > > > Or if there's an easier way, shove me toward it... > > > > Thanks, > > Dan > > > > >