java log4j 异常_【java】log4j2如何输出异常信息到日志文件中?

问题描述

原项目使用log4j管理日志,现在升级为log4j2后无法自动输出异常信息到日志文件内。

问题出现的环境背景及自己尝试过哪些方法

现在可以手动捕获异常然后通过logger.error(“”, e);打印异常信息到控制台和日志文件,但是项目太大全部修改花费时间太多了,想实现像log4j一样自动捕获后输出到日志文件内。

相关代码

log4j2配置文件

%d{yyyy-MM-dd HH:mm:ss,SSS} (%F:%L) %5p %m%n

D:/Tomcat 6.0/log4j/equipmentLease/

${filePath}/debug.log

${filePath}/info.log

${filePath}/error.log

filePattern="${filePath}/%d{yyyy-MM-dd}/debug_%i.log">

filePattern="${filePath}/%d{yyyy-MM-dd}/info_%i.log">

filePattern="${filePath}/%d{yyyy-MM-dd}/error_%i.log">

回答

居然被邀请了。

只不过这个问题不是很懂额。难道还有不调用log方法就能打日志的方法吗?Log4j还有自动捕获异常功能吗,可否贴个文档地址看一下(真心求教)。

你的需求我目前能想到的就是,就是通过Spring AOP的方式实现,在afterThrowing()方法中,将异常捕获打印,并将切面的作用域加入到我们想要处理的包或类中,问题就解决了,当然只处理作用域未处理的异常,作用域处理的异常还需要你手动添加log.info打印。

也不知道有没有答到点子上。。。

@AfterThrowing(value = "", throwing = "e")

public void afterThrowing(Throwable e) {

logger.error("发现未知异常", e);

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值