Thanks, I am afraid I read a similar solution earlier which I did not favour 
for multiple reasons:

- it is a run-time configuration question (handled by DevOps, Ops) to have 
various logging levels for various deployed applications on the same Tomcat
- we would like to have full control of logging (which class at what level 
etc.) during run-time, i.e. be able to have per web application Log4j 
configuration file
- writing servlet is beyond the scope of our responsibility (DevOps, Ops)
- keep the Dev and Ops responsibilities separated

What puzzles me is the Context / Parameter feature of Tomcat. (context-param 
from Java is clear.) There are at least 3 locations to define Tomcat level 
parameters:

- server.xml / Host
- webapps / ... / context.xml
- conf/.../myapp.xml

None of these I managed to configure. Is there any working example from Tomcat?

Shall I recommend Dev to hard code a path to the Log4j configuration in 
web.xml, i.e. /usr/local/etc/myapp_log4j.xml, which is potentially a symbolic 
link to an actual file that can stay anywhere on the file system?

> Date: Wed, 10 Sep 2014 09:03:59 -0700
> From: its_toas...@yahoo.com.INVALID
> To: users@tomcat.apache.org
> Subject: Re: Context parameter override?
> 
> -----BEGIN PGP SIGNED MESSAGE-----
> Hash: SHA1
> 
> On 9/10/2014 8:40 AM, sbre...@hotmail.com wrote:
> > Hello
> > 
> > We have a setup which compiles WAR applications once and deploys 
> > them in various environments. Each environment has its own per 
> > application Log4j configuration (WARN for production, DEBUG for 
> > development etc.) which should survive application redeployment.
> > 
> > So far the solution is:
> > 
> > webapps/myapp/WEB-INF/web.xml
> > 
> > ... <context-param> <param-name>log4jConfigLocation</param-name> 
> > <param-value>file:///opt/tomcat6/conf/myapp/log4j.xml</param-value>
> >
> >
> > 
> </context-param>
> > ...
> > 
> > Pretty standard, works.
> > 
> > Question is, how can I make sure the Log4j configuration path is 
> > not hard coded in the 'web.xml' at development time. Idea was:
> > 
> > webapps/myapp/META-INF/context.xml ... <Parameter 
> > name="log4jConfigLocation" value="file://TBD" /> ...
> > 
> > and change it after the application deployment:
> > 
> > conf/Catalina/localhost/myapp.xml ... <Parameter 
> > name="log4jConfigLocation" 
> > value="file:///opt/tomcat6/conf/myapp/log4j.xml" /> ...
> > 
> > Tomcat simply ignores both of these context XML files, or at least 
> > the parameters defined in them. I read through all mailing lists, 
> > all documentations, switched on debug to the 'finest' level, still 
> > no avail. How difficult can this be?
> > 
> > Details:
> > 
> > Server version: Apache Tomcat/6.0.35 Server built:   Nov 28 2011 
> > 11:20:06 Server number:  6.0.35.0 OS Name:        Linux OS
> > Version: 2.6.18-348.el5 Architecture:   amd64 JVM Version:
> > 1.6.0_30-b12 JVM Vendor:     Sun Microsystems Inc.
> > 
> > 
> > Cheers B.
> > 
> 
> I'm just noodling - haven't tried this. Your mileage may vary, void
> where prohibited, etc., etc., etc.
> 
> How about:
> 
> 1. use Parameter in context.xml to set the logging level:
> 
> <Parameter name="LoggingLevel" value="DEBUG" override="false"/>
> 
> 2. Write a servlet context listener to read the parameter
> 
> 3. Set the logging level accordingly
> 
> Place the servlet context listener as the first one in your web.xml so
> the new logging level is set before any other logging occurs.
> 
> This way your log4j.xml doesn't have to change, and you can just use
> an appropriate $CATALINA_BASE/conf/Catalina/[hostname]/[appname].xml
> to set the desired logging level.
> 
> This seems as if it should work.
> 
> . . . just my two cents
> /mde/
> -----BEGIN PGP SIGNATURE-----
> Version: GnuPG v1.4.13 (MingW32)
> 
> iQEcBAEBAgAGBQJUEHZvAAoJEEFGbsYNeTwte+YH/12yWANWhJ2+6MwCKHkdWh5G
> AQi20L9LVdjTtWYx+vpZvktqiDSNvYAUTTx2+AJaolo9puqsaSLf5kfR1hTgbGy8
> sMrBPLbJY1qY4uZruK5ISPc1I3nbo2j/uDtSpClbfMSGKLUIqcISiCxYwwcb/u5f
> UUGXSorSddwCEE2i5Sk8wHpYMcEjRDXa99t6qR5I4Xe6Tb9KG8rJ9yfiB1//snwO
> bOGmroKgYRB1sz7cM2xffZNW+3GzN/Z8py0GqdR07+sEDMTYpvVcW0Iu1ebmUtU6
> Aw2QTcK9pu4kU+Q2DA7vOycXTdG/8XgFOnQCvhXWRvy63iR1pXiz6KNCZ6qBkrk=
> =nU9F
> -----END PGP SIGNATURE-----
> 
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: users-unsubscr...@tomcat.apache.org
> For additional commands, e-mail: users-h...@tomcat.apache.org
> 
                                          

Reply via email to