Log4j 在本地而不是在服务器上打印错误堆栈跟踪
Log4j prints error stacktrace on local but not on server
我在 Amazon EC2 实例上有一个 Java 应用程序 运行ning。我正在使用 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);
第一个允许您在整个继承层次结构中的所有 class 中使用实际 class 的名称。
我在 Amazon EC2 实例上有一个 Java 应用程序 运行ning。我正在使用 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);
第一个允许您在整个继承层次结构中的所有 class 中使用实际 class 的名称。