Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to configure another log4j configuration file in Tomcat?

I am using log4j1.2, and I am new to log4j.

I hope that when I am debugging in my local machine ,the logs will be printed to console. But when it is running in PROD , it just logs to file, since I hope to have the least overhead.

I hope that I can achieve this(only print to console when in local machine rather than the prod env) without modifying the properties file every time when I deploy.

Here is what my log4j.properties looks like:

log4j.rootLogger=DEBUG,BAE,console,error


##################production logs###############
log4j.appender.BAE=org.apache.log4j.FileAppender
log4j.appender.BAE.encoding=utf-8
log4j.appender.BAE.Append=true
log4j.appender.BAE.Threshold=INFO
log4j.appender.BAE.layout=org.apache.log4j.SimpleLayout


####################Conole logs####################
##(hope only enable when debuging in local machine)
log4j.appender.console= org.apache.log4j.ConsoleAppender
log4j.appender.console.encoding=utf-8
## DEBUG logs
log4j.appender.console.Threshold = Trace 
log4j.appender.console.layout=org.apache.log4j.SimpleLayout


##################error logs##########################
log4j.appender.error=org.apache.log4j.FileAppender
log4j.appender.error.File=/home/bae/log/error.log 
log4j.appender.error.Threshold = ERROR  
log4j.appender.error.Append=true
log4j.appender.error.layout=org.apache.log4j.SimpleLayout
like image 650
JaskeyLam Avatar asked Mar 18 '23 15:03

JaskeyLam


2 Answers

You can configure another log4j configuration file in your environment in eclipse:

  • First, locate your Tomcat server in eclipse (servers tab) and double-click:

Servers

  • Next, click in Open lauch configuration:

Tomcat configuration

  • Add the log4j configuration argument in Tomcat and Apply.

JVM arguments

Enjoy!


See more in Apache log4j 1.2 - Short introduction to log4j

like image 90
Paul Vargas Avatar answered Apr 25 '23 09:04

Paul Vargas


If you do not have the log4j file in your path, you'll need to add something like this:

-Dlog4j.configuration="file:///C:/<path>/<nameifLog4jFile>"

Also if you use an environment variable in the log4j file, you need to declare it in the arguments. I have an env var by the name MAS_HOME that I use to specify the path to the log file. I then had to add this parameter to VM args:

-DMAS_HOME="c:\EE"
like image 40
user5285742 Avatar answered Apr 25 '23 08:04

user5285742