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... (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