问题描述
如题以前见有的人项目中这样设置的,调试起来非常方便,不知怎么弄的?求教 问题补充:最好有个封装类, 能把自己写的一些DEBUG的调试信息也和打印异常一样,点击直接LINK过去就好了。
解决方案
配置及输出如下:配置log4j.rootLogger=all,appender1 log4j.appender.appender1=org.apache.log4j.ConsoleAppender log4j.appender.appender1.layout=org.apache.log4j.PatternLayout log4j.appender.appender1.layout.ConversionPattern=[%d{yy-MM-dd HH:mm:ss}] %-5p %2r [%t] %c %l %m%n输出[11-01-30 18:52:22] TRACE 0 [main] com.bbl.log4j.Log4jTest com.bbl.log4j.Log4jTest.main(Log4jTest.java:11) trace其中格式化参数%l即可link入代码中。
解决方案二:
System.err.println(new StackTraceElement(Test.class.getName(),Test.java,11));这种输出,可以很好的输出哪一行,哪一个文件.但是,myeclipse仍然不会自动识别出来,并且允许跳转. 很想知道,如何 输出一个类名,和行号. 点击后自动跳转过去
解决方案三:
其实把e.printStackTrace()输出到logger里头,已经可以定位了。
解决方案四:
在Eclipse中,你在捕获异常时用上e.printStackTrace();在控制台就会自动有链接到代码行了。
解决方案五:
把错误信息打到日志里就可以点了可以是logger.debug(e.printStractrace());把信息全部打出来。或者是自己拼StackTraceElement[] trace = ex.getStackTrace();for (StackTraceElement s : trace) {logger.error("*** Exception happened"+ " --Class: " + s.getClassName()+ " --Method: " + s.getMethodName()+ " --Line: " + s.getLineNumber()+ " --Type: " + ex.toString());}
解决方案六:
ECLIPSE自己就会感知到的吧