我正在使用log4j1.2,我是log4j的新手。
我希望当我在本地计算机上调试时,日志将打印到控制台。 但是当它在PROD中运行时,它只是记录到文件,因为我希望有最少的开销。
我希望我可以实现这一点(只在本地机器上打印到控制台而不是prod env),而不是每次部署时都修改属性文件。
以下是我的log4j.properties的样子:
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
答案 0 :(得分:5)
您可以在eclipse中配置环境中的另一个log4j配置文件:
享受!
答案 1 :(得分:1)
如果您的路径中没有log4j文件,则需要添加以下内容:
-Dlog4j.configuration="file:///C:/<path>/<nameifLog4jFile>"
另外,如果在log4j文件中使用环境变量,则需要在参数中声明它。我有一个名为MAS_HOME的env var,用于指定日志文件的路径。然后我必须将此参数添加到VM args:
-DMAS_HOME="c:\EE"
答案 2 :(得分:0)
我想把它作为评论,但没有足够的声誉:P
如果您使用Maven,This可能会有所帮助 另请参阅this question以获取其他解决方案。
答案 3 :(得分:0)
你可以使用jvm param(Brian Agnew回答:log4j configuration via JVM argument(s)?):
你有log4j配置文件吗?只需使用
引用它-Dlog4j.configuration={path to file}
其中{path of file}应以
作为前缀file: