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