Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/343.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 将遗留的e.printStractTrace()记录到log4j_Java_Log4j - Fatal编程技术网

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