如何把异常打印到log4j

作者&投稿:颛萱 (若有异议请与网页底部的电邮联系)
Java中为什么用log4j的error方法记录异常到控制台,有的时候会打印栈轨迹,有的时候就只有~

是这样的,如果获取了异常,把异常作为最后一个参数打出来,那么可以打出异常的stack,否则不行。也就是说
try{
.......
}
catch(Exceptoin e){
log.error("运行异常",e); //可以获取异常的stack
log.error("运行异常"); // 只能获取运行异常几个字
log.error(e); //会调用e的toString方法,可以获取异常的Message,但没有stack
log.error(e.getMessage);//可以得到异常的message ,没有stack
}

只要配置了log4j。它自动会写异常啊

log4j.properties
----------------------------------------------------------------------------------------------
###set output encoding###
log4j.appender.logfile.encoding=UTF-8
### set log levels ###
log4j.rootLogger = debug,stdout,D,E

### out print at console ###
log4j.appender.stdout = org.apache.log4j.ConsoleAppender
log4j.appender.stdout.Target = System.out
log4j.appender.stdout.layout = org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern = %d{ABSOLUTE} %5p %c{1}:%L - %m%n

### write in log ###
log4j.appender.D = org.apache.log4j.DailyRollingFileAppender
#//\u5FC5\u987B\u662F\u5177\u4F53\u7684\u6587\u4EF6\u800C\u4E0D\u662F\u6587\u4EF6\u5939
log4j.appender.D.File = D:\kingcs.log
log4j.appender.D.Append = true
log4j.appender.D.Threshold = DEBUG
log4j.appender.D.layout = org.apache.log4j.PatternLayout
log4j.appender.D.layout.ConversionPattern = %-d{yyyy-MM-dd HH:mm:ss} [ %t:%r ] - [ %p ] %m%n

### save error log ###
log4j.appender.E = org.apache.log4j.DailyRollingFileAppender
# //\u5FC5\u987B\u662F\u5177\u4F53\u7684\u6587\u4EF6\u800C\u4E0D\u662F\u6587\u4EF6\u5939
log4j.appender.E.File = D:\kingcs_error.log
log4j.appender.E.Append = true
log4j.appender.E.Threshold = ERROR
log4j.appender.E.layout = org.apache.log4j.PatternLayout
log4j.appender.E.layout.ConversionPattern =%-d{yyyy-MM-dd HH\:mm\:ss} [ %t\:%r ] - [ %p ] %m%n

### direct log messages to stdout ###
#log4j.appender.stdout=org.apache.log4j.ConsoleAppender
#log4j.appender.stdout.Target=System.out
#log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
#log4j.appender.stdout.layout.ConversionPattern=%d{ABSOLUTE} %5p %c{1}:%L - %m%n

### direct messages to file hibernate.log ###
#log4j.appender.file=org.apache.log4j.FileAppender
#log4j.appender.file.File=hibernate.log
#log4j.appender.file.layout=org.apache.log4j.PatternLayout
#log4j.appender.file.layout.ConversionPattern=%d{ABSOLUTE} %5p %c{1}:%L - %m%n

### set log levels - for more verbose logging change 'info' to 'debug' ###

#log4j.rootLogger=warn, stdout

#log4j.logger.org.hibernate=info
#log4j.logger.org.hibernate=debug

### log HQL query parser activity
#log4j.logger.org.hibernate.hql.ast.AST=debug

### log just the SQL
#log4j.logger.org.hibernate.SQL=debug

### log JDBC bind parameters ###
#log4j.logger.org.hibernate.type=info
#log4j.logger.org.hibernate.type=debug

### log schema export/update ###
#log4j.logger.org.hibernate.tool.hbm2ddl=debug

### log HQL parse trees
#log4j.logger.org.hibernate.hql=debug

### log cache activity ###
#log4j.logger.org.hibernate.cache=debug

### log transaction activity
#log4j.logger.org.hibernate.transaction=debug

### log JDBC resource acquisition
#log4j.logger.org.hibernate.jdbc=debug

### enable the following line if you want to track down connection ###
### leakages when using DriverManagerConnectionProvider ###
#log4j.logger.org.hibernate.connection.DriverManagerConnectionProvider=trace

要用的jar包
---------------------------------------------------------------------
commons-logging-1.1.1.jar
log4j-1.2.16.jar

测试类
--------------------------------------------------------------------

public static void main(String[] args) {
Logger log = Logger.getLogger(Test.class);
log.debug("test!!!!!!!!!!!!!!!!");
log.error("err!!!!!!!!!!!!!!!!!!11");
}

以上测试代码运行下,这时打开 D:\kingcs.log 和D:\kingcs_error.log看看有没有打印。。。

希望能够帮助你。

1、在项目的中添加log4j.jar支持

2、在src下创建名为log4j.properties文件

3、编写log4j.properties内容


log4j.rootLogger=debug, stdout,logfile


log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.Target=System.err
log4j.appender.stdout.layout=org.apache.log4j.SimpleLayout


log4j.appender.logfile=org.apache.log4j.FileAppender
log4j.appender.logfile.File=c:/errors.log
log4j.appender.logfile.layout=org.apache.log4j.PatternLayout
log4j.appender.logfile.layout.ConversionPattern=%d{yyyy\u5E74MM\u6708dd\u65E5 HH\:mm\:ss} %l %F %p %m%n

4、在类中定义Logger对象,并在catch出使用Logger对象记录并打印错误信息

    

Logger logger=Logger.getLogger(this.getClass());
    logger.error("错误信息!");



燃气表显示lo是什么意思
燃气表上的LO是英文LOW的缩写,lo表示电量不足,需要换电池。\\r\\n3、因为每个小区的燃气表型号都是不同的,所以更换燃气表的电池的时候应该根据燃气表的具体型号来判断电池的位置,有的电池可能在燃气表顶部,有的是在底部或者是在液晶显示器的下方。\\r\\n4、燃气表的电池盖是用螺丝固定的,所以更换的...

宝马530lo驱动系统异常,什么问题?
关于您问题车辆低速行驶熄火两种情况抬起油门踏板滑行状态熄火由于发机怠速控制系统工作异所导致建议您检查发机怠速运转情况否

空调显示lo怎么调回正常
如果您的空调显示LO,这意味着室内温度低于设定温度。您可以通过以下步骤将其调回正常:1. 检查空调的温度设定是否正确。如果设定温度太低,将其调高一些。2. 检查空调的过滤器是否需要清洗或更换。如果过滤器被堵塞,空气流量会受到限制,导致室内温度下降。3. 检查空调室外机是否有异常。如果室外机故障...

铁将军胎压监测出现LO报警一会正常了这么回事?
1、胎压报警一会又消除的原因有可能是胎压误差,这种情况下,如行驶正常后没有再出现报警,那就没什么问题了,如还是报警,则重新复位下或者到4s店让专业人员帮忙检查消除。2、当汽车轮胎压力异常时,仪表盘上的胎压警报灯就会亮起,这时候车主就要注意对轮胎进行检查了。如果胎压灯在行驶过程中亮起,那...

linux龙芯linux.lo
linux虚拟机的ip是ens33还是lo?一般情况下是ens加数字 linux如何检测,驱动模块是否被加载?在linux可以查看当前已经安装的驱动的命令lsmod使用lsmod命令就可以查看当前已经安装的驱动。如果模块安装的太多,可以在输出的驱动列表中使用grep命令查找是否有需要查询的命令如lsmod|grep"helllo"查询hello驱动是否安装...

连接校园宽带WiFi时,lo异常是什么意思?
目前一般来说有几种方法:1、最简单的方法:android手机上装个wifi万能钥匙,尝试破解,我成功过,不过成功率极低!2、无线路由器开了wps,可以穷举pin,100%破解,不过路由器防pin的话算你运气背。3、无线路由器没开wps的,建议抓包,然后挂字典破解。(wep容易,wpa和wpa2看运气)。建议您使用cd...

电子体温计放入腋下测体温,不显温度,只显Lo℃,是什么问题,谢谢
LO”。电子体温计正确使用:按开机键,显示188.8℃,2秒后显示上一次的测量数据,再过2秒出现“LO”,℃会闪烁,这个时候可以将体温计探头放在腋窝出,等听到bi bi的声音后继续测量3分钟就可以了。测完后拿出看读数,如在10分钟内不做任何操作后,电子体温计会自动关机。

空调开关lo是什么意思
原因:LO表示“低”的意思。在有些空调上还会出现Hi、Me等标志,意思是高、中等,它们三个常表示风量的档级,或者设定温度的高低,当调节空调温度出现LO时就表示已经是空调的最低温度了。空调使用注意事项:1、清除通风口的杂物,保证通风正常。观察室外机架有无松动现象,清洁室外通风网罩内有无异物。...

电脑有时候开机显示器不亮。有时候卡在主板LO上要重启好几次运气好...
有的廉价机箱内部空间太小,主板放进去以后,加上再装好硬盘、软驱等等,压迫了RESET键和POWER键的位置,也可能会造成这两个键不能正常复位,导致开机异常。可以把主板拿出机箱外只加CPU和显卡、内存检查一下,如果能正常开机,可确认是这个原因无疑,换个好机箱吧。二、旧机器或是升级后的问题 有的旧...

汽车仪表盘显示looc是什么故障
汽车仪表盘上出现感叹号标志表明制动系统异常或者手刹没有放下来。制动系统出现异常,表现在制动不良或失灵、制动单边跑偏、 制动噪音、制动拖滞引起的制动鼓发热、驻车制动器失灵。汽车制动系统异常的原因:1、手刹没有放到位;2、ABS功能失效;3、刹车片磨损严重,已经失效;4、刹车油不符合要求。汽车仪表...

镇雄县17757791003: java 中怎么将程序出现的异常信息保存到日志文件中 -
施贸天泉: 有一个叫log4j的组件下载后放在lib文件夹下,设置配置文件.然后在你的类中创建这个的对象 ,这个对象的构造器需要这个类的完整名,例如:private static final Logger logger = Logger.getLogger(xxx.class); 然后在你需要的地方使用这个对象,例如:logger.info(message); log4j有三种级别,info,error,debug,在配置文件中可以配置保存的路径,保存的级别

镇雄县17757791003: mybatis sql出错怎么打印出来错误 -
施贸天泉: 怎么把mybatis的sql打印出来mybatis默认使用log4j,当有self4j这个日志jar包存在时会无法打印sql,请移除或者在工程启动时显示设置mybatis使用的日志类:log4j.logger.org.apache.ibatis=debug,stdoutlog4j.logger.java.sql=debug,stdout

镇雄县17757791003: java.lang.runtimeexception怎么打印在log4j -
施贸天泉: 可以单独配置某个category为debug级别输出 如果,你用class名称初始化logger,这个category就是classname

镇雄县17757791003: 各位大师们:java中,如何将控制台中出错的信息(包含服务器端报500),用log4j输出到日志文件中保存? -
施贸天泉: 在Log4j的配置文件中写下面的话#设置文件名 这就是文件的保存位置 log4j.appender.file.File=d:/a/a.log

镇雄县17757791003: slf4j怎么打印java错误堆栈信息throwable对象 -
施贸天泉: SLF4J 1.6.0 以前的版本,如果打印异常堆栈信息,必须用 log.error(Stringmsg,Throwablet) log.info等对应方法. 如果msg含有变量,一般用String.format方法格式化msg.如果用 error(Stringformat,Object...arguments) 等其它方法,异常堆栈信息会丢失. 幸好,SLF4J 1.6.0以后的版本对这个不友好的异常信息log 改进了. error(Stringformat,Object…arguments) 这个方法也会打印异常堆栈信息,只不过规定throwable对象必须为 最后一个参数.如果不遵守这个规定,异常堆栈信息不会log出来.

镇雄县17757791003: log4j 怎么打印jvm 错误 -
施贸天泉: 1、在项目的中添加log4j.jar支持 2、在src下创建名为log4j.properties文件 3、编写log4j.properties内容 log4j.rootLogger=debug, stdout,logfilelog4j.appender.stdout=org.apache.log4j.ConsoleAppenderlog4j.appender.stdout.Target=System.

镇雄县17757791003: Java程序,怎么才能把非检查Exception写入到log4j的log文件中? -
施贸天泉: 只要配置了log4j.它自动会写异常啊

镇雄县17757791003: java日志文件log4j -
施贸天泉: log4j.properties的基本配置如下### set log levels ### log4j.rootLogger = debug , D , E### 输出到日志文件 ### log4j.appender.D = org.apache.log4j.DailyRollingFileAppender log4j.appender.D.File = logs/log.log //保存成你想要的文件txt log4j....

镇雄县17757791003: Java 异常处理 设计规则
施贸天泉: 比较标准的做法是配置Log4j,把异常输出到日志. 如果严重到不能继续执行的,比如连接失败,应该设计对话框通知操作员,同时输出Log.

镇雄县17757791003: java 捕获异常,怎样截取异常的重要部分 -
施贸天泉: 直接抛出就行了...在抛出异常的时候,你在catch做任何操作都可以...

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网