log4j.rootLogger=ERROR,R
log4j.appender.R=org.apache.log4j.DailyRollingFileAppender
log4j.appender.R.File=D:/backup.log
log4j.appender.R.DatePattern = '.'yyyy-MM-dd
log4j.appender.R.layout=org.apache.log4j.PatternLayout
log4j.appender.R.layout.ConversionPattern=%-d{yyyy-MM-dd HH:mm:ss} [%c]-[%p] %m%n
在日志文件里面有输出:
2007-09-03 21:16:26 [com.TrackAction]-[ERROR] java.net.ConnectException: Connection timed out: connect
而在控制台里面则有输出:
java.net.ConnectException: Connection timed out: connect
at java.net.PlainSocketImpl.socketConnect(Native Method)
at java.net.PlainSocketImpl.doConnect(PlainSocketImpl.java:333)
at java.net.PlainSocketImpl.connectToAddress(PlainSocketImpl.java:195)
at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:182)
at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:364)
at java.net.Socket.connect(Socket.java:507)
at java.net.Socket.connect(Socket.java:457)
at java.net.Socket.<init>(Socket.java:365)
at java.net.Socket.<init>(Socket.java:178)
at com.kj133.action.TrackAction.init(TrackAction.java:79)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
我怎么才能把详细信息输出到日志文件里面,请高手指教!
11 个解决方案
#1
log.error("输入你要描述的信息",e);
这样即可得到堆栈信息,不要使用log.error(e)和log.error(e.getStac*****)
这样即可得到堆栈信息,不要使用log.error(e)和log.error(e.getStac*****)
#2
按照你的方法,我试了下,在日志文件里面还是没有详细的信息,并且按照你的方法,
输出的太多了信息,很多都不是我想要的。。。
输出的太多了信息,很多都不是我想要的。。。
#3
设置要输出日志的级别,你的是error,所以大于error的都打印了
#4
log.error(e.getMessage())
#5
按照楼上的说法,我改了改,在日志文件里面还只是显示信息
09:37:38,859 ERROR [ShowMaPAction] Connection refused: connect
并没有显示详细的信息
09:37:38,859 ERROR [ShowMaPAction] Connection refused: connect
并没有显示详细的信息
#6
log.error("输入你要描述的信息",e);要将异常对象作为第二个参数传递到log的方法中
#7
按照楼上的方法,改了改,还是不行,也没有输出详细的信息。。。
请问这是什么原因?
请问这是什么原因?
#8
catch后写log.error(e.printtrace)...之类的,信息就不会到console而是进日志
#9
可惜两年前我没有看到这个帖子,有种相见恨晚的感觉~_~
用这种log.XXX(Object obj,Thowable e)就可以把异常的堆栈信息写入日志了。。
用这种log.XXX(Object obj,Thowable e)就可以把异常的堆栈信息写入日志了。。
#10
1楼写的是正确答案
但有一点写错了,log.error(e.getStac*****) 这句话编译都不通过,不可能这么写的。
但有一点写错了,log.error(e.getStac*****) 这句话编译都不通过,不可能这么写的。
#11
logger.error(Object message, Throwable t)
正确
正确
#1
log.error("输入你要描述的信息",e);
这样即可得到堆栈信息,不要使用log.error(e)和log.error(e.getStac*****)
这样即可得到堆栈信息,不要使用log.error(e)和log.error(e.getStac*****)
#2
按照你的方法,我试了下,在日志文件里面还是没有详细的信息,并且按照你的方法,
输出的太多了信息,很多都不是我想要的。。。
输出的太多了信息,很多都不是我想要的。。。
#3
设置要输出日志的级别,你的是error,所以大于error的都打印了
#4
log.error(e.getMessage())
#5
按照楼上的说法,我改了改,在日志文件里面还只是显示信息
09:37:38,859 ERROR [ShowMaPAction] Connection refused: connect
并没有显示详细的信息
09:37:38,859 ERROR [ShowMaPAction] Connection refused: connect
并没有显示详细的信息
#6
log.error("输入你要描述的信息",e);要将异常对象作为第二个参数传递到log的方法中
#7
按照楼上的方法,改了改,还是不行,也没有输出详细的信息。。。
请问这是什么原因?
请问这是什么原因?
#8
catch后写log.error(e.printtrace)...之类的,信息就不会到console而是进日志
#9
可惜两年前我没有看到这个帖子,有种相见恨晚的感觉~_~
用这种log.XXX(Object obj,Thowable e)就可以把异常的堆栈信息写入日志了。。
用这种log.XXX(Object obj,Thowable e)就可以把异常的堆栈信息写入日志了。。
#10
1楼写的是正确答案
但有一点写错了,log.error(e.getStac*****) 这句话编译都不通过,不可能这么写的。
但有一点写错了,log.error(e.getStac*****) 这句话编译都不通过,不可能这么写的。
#11
logger.error(Object message, Throwable t)
正确
正确