Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/324.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 如何将堆栈跟踪打印到日志文件中?_Java_Logging_Stack Trace - Fatal编程技术网

Java 如何将堆栈跟踪打印到日志文件中?

Java 如何将堆栈跟踪打印到日志文件中?,java,logging,stack-trace,Java,Logging,Stack Trace,如何将堆栈跟踪打印到日志文件中,COM接口正在调用我们的jar文件,因此需要知道用于调试的堆栈跟踪。您可以使用commons日志记录,并具有如下代码: private static final Log LOG_OBJ=LogFactory.getLog(YourClassName.class); 然后: try { //Your implementation here } catch(Exception e) { LOG_OBJ.error("Exception occurr

如何将堆栈跟踪打印到日志文件中,COM接口正在调用我们的jar文件,因此需要知道用于调试的堆栈跟踪。

您可以使用commons日志记录,并具有如下代码:

private static final Log LOG_OBJ=LogFactory.getLog(YourClassName.class);
然后:

try {
    //Your implementation here
} catch(Exception e) {
     LOG_OBJ.error("Exception occurred", e);
}

您可以做的是包装系统错误流和系统输出流,并在应用程序启动时将其重定向到某个文件,如下所示:

 File logFile = new File("MyLog.log");

 PrintStream ps = new PrintStream(new FileOutputStream(logFile));

 System.setOut(ps);
 System.setErr(ps);
这会将所有
系统.out.print
printStackTraces
重定向到日志文件
MyLog.log

或者您可以使用log4j或java日志实现一些日志机制


希望这有帮助。

您是否使用任何类型的日志框架?回归经典?Log4j?您想将其记录在系统日志中还是单独的日志中?这里没有关于当前如何打印到日志文件的任何信息。