我有一个在 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
文件仅显示消息从数据库获取计数时发生异常
我的 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);
第一个允许您在整个继承层次结构的所有类中使用实际类的名称。
关于java - Log4j 在本地打印错误堆栈跟踪,但不在服务器上打印,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47770393/