簡體   English   中英

Log4j在本地但不在服務器上打印錯誤stacktrace

[英]Log4j prints error stacktrace on local but not on server

我有一個在Amazon EC2實例上運行的Java應用程序。 我正在使用Apache log4j日志記錄框架來維護我的應用程序的ERROR以及DEBUG日志。

但是最近我無法使用logger.error(String Message, Throwable t)記錄錯誤堆棧跟蹤。

我嘗試這樣登錄,

final Logger logger = LoggerFactory.getLogger(MyClass.class);

StringWriter sWriter = new StringWriter();
e.printStackTrace(new PrintWriter(sWriter));
logger.error("Exception occured while fetching count from DB", sWriter);

但是.log文件僅顯示消息, Exception occurred while fetching count from DB

我的log4j.properties文件看起來像這樣

# Root logger
log4j.rootLogger=INFO, RollingAppender

# LOG4J daily rolling log files configuration
log4j.rootLogger=${loggingType}, RollingAppender
log4j.appender.RollingAppender=org.apache.log4j.DailyRollingFileAppender
log4j.appender.RollingAppender.File=${logFile}
log4j.appender.RollingAppender.DatePattern='.'yyyy-MM-dd
log4j.appender.RollingAppender.layout=org.apache.log4j.PatternLayout
log4j.appender.RollingAppender.layout.ConversionPattern=%d [%p] %c %M - %m%n

如果我在本地運行該應用程序,則可以看到錯誤的打印堆棧跟蹤,但在我的Amazon EC2實例上無法正常運行。

log4j版本為1.7.2

JDK版本是1.7.0_151

任何幫助表示贊賞。 謝謝。

嘗試使用

final Logger logger = LoggerFactory.getLogger(getClass()); 

代替

final Logger logger = LoggerFactory.getLogger(MyClass.class);

第一個允許您在整個繼承層次結構的所有類中使用實際類的名稱。

暫無
暫無

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

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