- 53
- 0
问题描述
原项目使用log4j管理日志,现在升级为log4j2后无法自动输出异常信息到日志文件内。
问题出现的环境背景及自己尝试过哪些方法
现在可以手动捕获异常然后通过logger.error("", e);打印异常信息到控制台和日志文件,但是项目太大全部修改花费时间太多了,想实现像log4j一样自动捕获后输出到日志文件内。
相关代码
log4j2配置文件
<?xml version="1.0" encoding="UTF-8"?>
<!-- log4j2 配置文件 -->
<!-- 日志级别 trace<debug<info<warn<error<fatal -->
<configuration status="debug">
<!-- 自定义属性 -->
<Properties>
<!-- 日志格式 -->
<Property name="pattern">%d{yyyy-MM-dd HH:mm:ss,SSS} (%F:%L) %5p %m%n</Property>
<!-- 日志文件路径 -->
<Property name="filePath">D:/Tomcat 6.0/log4j/equipmentLease/</Property>
<!-- debug级别日志文件名称 -->
<Property name="debugFileName">${filePath}/debug.log</Property>
<!-- info级别日志文件名称 -->
<Property name="infoFileName">${filePath}/info.log</Property>
<!-- error级别日志文件名称 -->
<Property name="errorFileName">${filePath}/error.log</Property>
</Properties>
<!-- 定义输出器 -->
<appenders>
<!-- 控制台输出 -->
<Console name="console" target="SYSTEM_OUT">
<!-- 日志格式 -->
<PatternLayout pattern="${pattern}"/>
</Console>
<!-- debug级别日志文件输出 -->
<RollingFile name="debug_appender" fileName="${debugFileName}"
filePattern="${filePath}/%d{yyyy-MM-dd}/debug_%i.log">
<!-- 过滤器 -->
<Filters>
<!-- 限制日志级别在debug及以上在info以下 -->
<ThresholdFilter level="debug"/>
<ThresholdFilter level="info" onMatch="DENY" onMismatch="NEUTRAL"/>
</Filters>
<!-- 日志格式 -->
<PatternLayout pattern="${pattern}"/>
<!-- 策略 -->
<Policies>
<!-- 每隔一天转存 -->
<TimeBasedTriggeringPolicy interval="1" modulate="true"/>
<!-- 文件大小 -->
<SizeBasedTriggeringPolicy size="100 MB"/>
</Policies>
</RollingFile>
<!-- info级别日志文件输出 -->
<RollingFile name="info_appender" fileName="${infoFileName}"
filePattern="${filePath}/%d{yyyy-MM-dd}/info_%i.log">
<!-- 过滤器 -->
<Filters>
<!-- 限制日志级别在info及以上在error以下 -->
<ThresholdFilter level="info"/>
<ThresholdFilter level="error" onMatch="DENY" onMismatch="NEUTRAL"/>
</Filters>
<!-- 日志格式 -->
<PatternLayout pattern="${pattern}"/>
<!-- 策略 -->
<Policies>
<!-- 每隔一天转存 -->
<TimeBasedTriggeringPolicy interval="1" modulate="true"/>
<!-- 文件大小 -->
<SizeBasedTriggeringPolicy size="100 MB"/>
</Policies>
</RollingFile>
<!-- error级别日志文件输出 -->
<RollingFile name="error_appender" fileName="${errorFileName}"
filePattern="${filePath}/%d{yyyy-MM-dd}/error_%i.log">
<!-- 过滤器 -->
<Filters>
<!-- 限制日志级别在error及以上 -->
<ThresholdFilter level="error"/>
</Filters>
<!-- 日志格式 -->
<PatternLayout pattern="${pattern}"/>
<Policies>
<!-- 每隔一天转存 -->
<TimeBasedTriggeringPolicy interval="1" modulate="true"/>
<!-- 文件大小 -->
<SizeBasedTriggeringPolicy size="100 MB"/>
</Policies>
</RollingFile>
</appenders>
<!-- 定义logger -->
<loggers>
<!-- 定义根logger -->
<!-- 日志级别设备为debug 具体日志级别由appender限制 -->
<Root level="debug">
<!-- 输出控制台 -->
<AppenderRef ref="console"/>
<!-- 输出debug级别日志文件 -->
<AppenderRef ref="debug_appender"/>
<!-- 输出info级别日志文件 -->
<AppenderRef ref="info_appender"/>
<!-- 输出error级别日志文件 -->
<AppenderRef ref="error_appender"/>
</Root>
</loggers>
</configuration> 1
打赏
收藏
点击回答
- 共 0 条
- 全部回答
-
核桃奶 普通会员 1楼
在Log4j2中,你可以使用"error"和"info"级别的日志来输出异常信息。以下是一个示例:
```java import org.apache.log4j.Logger; import org.apache.log4j.PatternLayout;
public class LoggerExample { private static final Logger logger = Logger.getLogger(LoggerExample.class);
public static void main(String[] args) { try { logger.error("An error occurred", new Exception("This is an error message")); // 输出到控制台 logger.info("This is an info message"); // 输出到日志文件 logger.error("An error occurred", new Exception("This is an error message"), PatternLayout.PARSING构造函数参数为"[{+}][{+}][{+}][{+}][{+}][{+}][{+}][{+}][{+}][{+}][{+}][{+}][{+}][{+}][{+}][{+}][{+}][{+}][{+}][{+}][{+}][{+}][{+}][{+}][{+}][{+}][{+}][{+}][{+}][{+}][{+}][{+}][{+}][{+}][{+}][{+}][{+}][{+}][{+}][{+}][{+}][{+}][{+}][{+}][{+}][{+}][{+}][{+}][{+}][{+}][{+}][{+}][{+}][{+}][{+}][{+}][{+}][{+}][{+}][{+}][{+}][{+}][{+}][{+}][{+}][{+}][{+}][{+}][{+}][{+}][{+}][{+}][{+}][{+}][{+}][{+}][{+}][{+}][{+}][{+}][{+}][{+}][{+}][{+}][{+}][{+}][{+}][{+}][{+}][{+}][{+}][{+}][{+}][{+}][{+}][{+}][{+}][{+}][{+}][{+}][{+}][{+}][{+}][{+}][{+}][{+}][{+}][{+}][{+}][{+}][{+}][{+}][{+}][{+}][{+}][{+}][{+}][{+}][{+}][{+}][{+}][{+}][{+}][{+}][{+}][{+}][{+}][{+}][{+}][{+}][{+}][{+}][{+}][{+}][{+}][{+}][{+}][{+}][{+}][{+}][{+}][{+}][{+}][{+}][{+}][{+}][{+}][{+}][{+}][{+}][{+}][{+}][{+}][{+}][{+}][{+}][{+}][{+}][{+}][{+}][{+}][{+}][{+}][{+}][{+}][{+}][{+}][{+}][{+}][{+}][{+}][{+}][{+}][{+}][{+}][{+}][{+}][{+}][{+}][{+}][{+}][{+}][{+}][{+}][{+}][{+}][{+}][{+}][{+}][{+}][{+}][{+}][{+}][{+}][{+}][{+}][{+}][{+}][{+}][{+}][{+}][{+}][{+}][{+}][{+}][{+}][{+}][{+}][{+}][{+}][{+}][{+}][{+}][{+}][{+}][{+}][{+}][{+}][{+}][{+}][{+}][{+}][{+}][{+}][{+}][{+}][{+}][{+}][{+}][{+}][{+}][{+}][{+}][{+}][{+}][{+}][{+}][{+}][{+}][{+}][{+}][{+}][{+}][{+}][{+}][{+}][{+}][{+}][{+}][{+}][{+}][{+}][{+}][{+}][{+}][{+}][{+}][{+}][{+}][{+}][{+}][{+}][{+}][{+}][{+}][{+}][{+}][{+}][{+}][{+}][{+}][{+}][{+}][{+}][{+}][{+}][{+}][{+}][{+}][{+}][{+}][{+}][{+}][{+}][{+}][{+}][{+}][{+}][{+}][{+}][{+}][{+}][{+}][{+}][{+}][{+}][{+}][{+}][{+}][{+}][{+}][{+}][{+}][{+}][{+}][{+}][{+}][{+}][{+}][{+}][{+}][{+}][{+}][{+}][{+}][{+}][{+}][{+}][{+}][{+}][{+}][{+}][{+}][{+}][{+}][{+}][{+}][{+}][{+}][{+}][{+}][{+}][{+}][{+}][{+}][{+}][{+}][{+}][{+}][{+}][{+}][{+}][{+}][{+}][{+}][{+}][{+}][{+}][{+}][{+}][{+}][{+}][{+}][{+}][{+}][{+}][{+}][{+}][{+}][{+}][{+}][{+}][{+}][{+}][{+}][{+}][{+}][{+}][{+}][{+}][{+}][{+}][{+}][{+}][{+}][{+}][{+}][{+}][{+}][{+}][{+}][{+}][{+}][{+}][{+}][{+}][{+}][{+}][{+}][{+}][{+}][{+}][{+}][{+}][{+}][{+}][{+}][{+}][{+}][{+}][{+}][{+}][{+}][{+}][{+}][{+}][{+}][{+}][{+}][{+}][{+}][{+}][{+}][{+}][{+}][{+}][{+}][{+}][{+}][{+}][{+}][{+}][{+}][{+}][{+}][{+}][{+}][{+}][{+}][{+}][{+}][{+}][{+}][{+}][{+}][{+}][{+}][{+}][{+}][{+}][{+}][{+}][{+}][{+}][{+}][{+}][{+}][{+}][{+}][{+}][{+}][{+}][{+}][{+}][{+}][{+}][{+}][{+}][{+}][{+}][{+}][{+}][{+}
更多回答
网站公告
- 扫一扫访问手机版
回答动态

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器更新之后。服务器里面有部分玩家要重新创建角色是怎么回事啊?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题函数计算不同地域的是不能用内网吧?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题ARMS可以创建多个应用嘛?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题在ARMS如何申请加入公测呀?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题前端小程序接入这个arms具体是如何接入监控的,这个init方法在哪里进行添加?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器刚到期,是不是就不能再导出存档了呢?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器的游戏版本不兼容 尝试更新怎么解决?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器服务器升级以后 就链接不上了,怎么办?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器转移以后服务器进不去了,怎么解决?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器修改参数后游戏进入不了,是什么情况?预计能赚取 0积分收益
- 回到顶部
- 回到顶部

