If you are using spring by any chance, I think this can be resolved using following in web.xml

<context-param>
        <param-name>log4jConfiguration</param-name>
        <param-value>${sys:LOG4J_PATH}</param-value>
    </context-param>

and LOG4J_PATH is defined using -DLOG4J_PATH=file:///<your path> in setenv file.

I am not sure if this is spring functionality, or log4j functionality, but it does work for us. We have multiple application on same tomcat instance and each log goes to it's own file. We don't like to embed the log4j settings in the JAR or WAR files as it means another deployment if you want to change log settings to triage a problem.

Regards,

Niranjan

On 04/13/2016 09:54 PM, Ralph Goers wrote:
Is the log4j configuration similar in the same environments?  If so you could 
have your log4j.xml file be a “template” where all the items that are variable 
are variables resolved by a lookup.  You could either use the system properties 
lookup and make sure all the system properties are defined, or you could create 
a custom lookup that reads a property file named for the environment as you 
have described. You would then use that lookup to resolve all the configurable 
items in log4j2.xml.

Ralph

On Apr 13, 2016, at 5:22 PM, Steven Yang <kenshin...@gmail.com> wrote:

Hi

currently the convention we adopt on property files are having separate
file for each environment.
for example, if there is a property file call "database" then there will be
a database.dev.properties for local develop, database.uat.properties for
UAT and a database.prod.properties for production.
However log4j only supports a normal one and a test.

Of course we can rename the file before deploying the application (no
hassle, since we are using Gradle).
However, we dont feel like its the best solution thats why we used the jvm
argument when we were using separate tomcats.

So just want to make sure there is no other better solution for this case
before I go into using the xml file directly in the war file.

Thanks

On Wed, Apr 13, 2016 at 3:17 AM, Kamal Mettananda <lka...@gmail.com> wrote:

Hi Steven

Have you looked at using separate and different log4j2.xml files inside
each app (.war files) rather than using command line configurations?

Thanks
Kamal

-----------------------
www.digizol.com


On Tue, Apr 12, 2016 at 4:10 PM Steven Yang <kenshin...@gmail.com> wrote:

Hi

I am trying to deploy 2 applications in to one tomcat (originally in 2
separate tomcat).
And I use -Dlog4j.configurationFile to specify my log4j configuration.
However, if I do that both applications will write to the same file.
I want each application to write to there own files.
Both applications have very similar packages and share many common
libraries developed in-house, so using package name to separate logs will
not be what we want.

What is the best solution/practice to this kind of problem?

(using log4j 2.5)

Thanks



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