Java 将遗留的e.printStractTrace()记录到log4j
我有一些遗留代码,其中有很多Java 将遗留的e.printStractTrace()记录到log4j,java,log4j,Java,Log4j,我有一些遗留代码,其中有很多e.printStackTrace(),由于明显的原因,这些代码没有打印在log4j文件中。最新代码确实有log.error(“类::方法中发生异常”,e)。是否有一种标准方法将这些遗留e.printStackTrace()记录在log4j中 这是我的log4j属性。我正在代码中设置属性文件/日志文件名 PropertyConfigurator.configure("log4j.properties"); setLog4jFile("log.txt"); priva
e.printStackTrace()
,由于明显的原因,这些代码没有打印在log4j文件中。最新代码确实有log.error(“类::方法中发生异常”,e)代码>。是否有一种标准方法将这些遗留e.printStackTrace()
记录在log4j中
这是我的log4j属性。我正在代码中设置属性文件/日志文件名
PropertyConfigurator.configure("log4j.properties");
setLog4jFile("log.txt");
private static void setLog4jFile(String logFileName) {
try {
Logger rootLogger = Logger.getRootLogger();
RollingFileAppender appender = new RollingFileAppender(new PatternLayout("%p %t %c - %m%n"), logFileName, false);
appender.setMaxFileSize("10000KB");
appender.setMaxBackupIndex(10);
rootLogger.addAppender(appender);
}catch (Exception e) {
e.printStackTrace();
}
}
log4j.properties
您可以将标准的System.err
重定向到log4j
这个问题及其答案应该起到以下作用:
如果可能的话,我仍然建议将printStacktrace
重写为log语句
log4j.rootCategory=info, stdout
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%5p [%t] (%F%L) - %m%n