簡體   English   中英

應用程序log4j.properties未加載

[英]Application log4j.properties not loaded

我在Amazon Linux(版本201303)上安裝了干凈的tomcat 7,其中一個應用程序部署為ROOT。 log4j-1.2.17.jar駐留在WEB-INF / lib中。 WEB-INF / classes中有一個log4j.properties文件,其中包含以下內容:

log4j.rootLogger=DEBUG,A1, A2

log4j.appender.A1=org.apache.log4j.ConsoleAppender
log4j.appender.A1.Threshold=DEBUG

log4j.appender.A1.layout=org.apache.log4j.PatternLayout
log4j.appender.A1.layout.ConversionPattern=%d{yyyy-MM-dd}-%t-%x-%-5p-%-10c:%m%n

log4j.appender.A2.File=${catalina.home}/logs/app.log
log4j.appender.A2=org.apache.log4j.DailyRollingFileAppender
log4j.appender.A2.DatePattern='.' yyyy-MM-dd
log4j.appender.A2.MaxFileSize=10MB
log4j.appender.A2.MaxBackupIndex=99
log4j.appender.A2.Append=true

log4j.appender.A2.layout=org.apache.log4j.PatternLayout
log4j.appender.A2.layout.ConversionPattern=%d{yyyy-MM-dd HH\:mm\:ss,SSS}-%t-%x-%-5p-%-10c:%m%n

在應用程序中,log4j實例化為

static Logger logger = Logger.getLogger(ClassName.class.getName());

app.log永遠不會被創建。 如果我手動創建,則永遠不會寫入。 唯一正在進行的記錄是logs / catalina.out。 我想念什么? 我已經多次閱讀http://tomcat.apache.org/tomcat-7.0-doc/logging.html 以下摘錄似乎證實了我的方法:

如果只想在自己的Web應用程序中使用log4j,則不需要這些步驟。 —在這種情況下,只需將log4j.jar和log4j.properties放入Web應用程序的WEB-INF / lib和WEB-INF /類中。

catalina_home / lib中有一個log4j.jar和log4j.xml,而catalina_home / conf中有一個log4j.properties。 那些可能與我的WAR中包含的罐子沖突嗎? 我在catalina.out中沒有看到任何錯誤。

更新

因此,似乎正在加載WEB-INF / classes中的log4j.properties。 我刪除了ConsoleAppender(log4j.appender.A1),並且日志消息停止出現在catalina.out中。 我放回去,日志消息再次出現在catalina.out中。 奇怪的是,轉換模式似乎與日志不匹配。 %d{yyyy-MM-dd}-%t-%x-%-5p-%-10c:%m%n是否不應生成類似2013-07-10 INFO ClassName Log message 相反,我看到的是14:39:29,180 INFO [ClassName] Log message

更新2

我找到了答案。 $ {catalina.home} / lib中有一個log4j.xml,它在容器級別配置log4j。 我想如果我真的對Tomcat中所做的事情有了新的了解,我會早點弄清楚的。 一旦我開始配置lib / log4j.xml,我就得到了預期的結果。 我仍然有些困惑,為什么我的應用程序繼承了該配置而不是使用自己的log4j.properties。 哦,很好,我達到了預期的結果,所以繼續前進。

請嘗試一下(首先使用日志文件的物理路徑進行測試),然后嘗試使用不同版本的log4j jar

Jar版本log4j-1.2.14.jar

log4j.watch = true

log4j.readtime = 30000

log4j.rootCategory = DEBUG,應用程序日志log4j.rootCategory = DEBUG,strutslogging log4j.category.applicationlogging =調試,applicationlogging log4j.category.org = DEBUG,strutslogging

log4j.logger.org.apache.commons.httpclient = DEBUG log4j.logger.httpclient.wire.header = OFF log4j.logger.httpclient.wire.content = OFF log4j.additivity.applicationlogging =否log4j.additivity.strutslogging =否log4j .appender.applicationlogging = org.apache.log4j.RollingFileAppender log4j.appender.applicationlogging.File = C:/logs/app.log log4j.appender.applicationlogging.MaxFileSize = 3000KB log4j.appender.applicationlogging.MaxBackupIndex = 50 log4j.appender。 applicationlogging.layout = org.apache.log4j.PatternLayout log4j.appender.applicationlogging.layout.ConversionPattern =%d-%m%n

$ {catalina.home} / lib中有一個log4j.xml,它在容器級別配置log4j。 我們僅部署了一個應用程序,因此在我的用例中使用lib / log4j.xml效果很好。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM