java - 从 Log4j 迁移到 Log4j2 时的 RollingFileAppender 实现
问题描述
当我当前正在使用的系统具有 Log4j 时,以下方法正在使用一段时间。现在我们正在从 Log4j 迁移到 Log4j2,我遇到了编译问题。
private void initLogger(String logFile) {
RollingFileAppender fileAppender = (RollingFileAppender) Logger.getRootLogger()
.getAppender("FILE");
if (logFile!=null && !"".equals(logFile)) {
if (null != fileAppender) {
fileAppender.setFile(logFile);
fileAppender.activateOptions();
fileAppender.setImmediateFlush(true);
}
}
}
Log4j2 罐子:log4j-api-2.12.1.jar、log4j-core-2.12.1.jar
有人可以提供有关处理上述方法的正确方法的帮助吗?
解决方案
就我而言,我使用xml
如下配置
<?xml version="1.0" encoding="UTF-8"?>
<Configuration status="WARN">
<Appenders>
<RollingFile name="RollingFile" fileName=".\logs\app.log"
filePattern=".\logs\$${date:yyyy-MM}\app-%d{MM-dd-yyyy}-%i.log.gz">
<PatternLayout>
<Pattern>%d %p %c{1.} [%t] %m%n</Pattern>
</PatternLayout>
<Policies>
<TimeBasedTriggeringPolicy />
<SizeBasedTriggeringPolicy size="1 KB"/>
</Policies>
<DefaultRolloverStrategy max="20"/>
</RollingFile>
</Appenders>
<Loggers>
<Root level="all">
<AppenderRef ref="RollingFile" />
</Root>
</Loggers>
</Configuration>
如果您想使用不带 xml 的属性、YAML、JSON,请遵循此链接并阅读从 1 到 10 的步骤Automatic Configuration
推荐阅读
- c# - C# 数据表实体框架
- browser - 如何在一个浏览器中制作whats app多个登录帐户
- reactjs - 这是否可以破解 React 渲染方法来为键分配自定义前缀?
- database - 如何在 Laravel 上插入数据“单选按钮”?
- python - 从字符串末尾删除特定单词
- javascript - jquery not function 没有按预期工作
- python - 如何匹配整个数据框中的元素并返回该特定匹配元素的整行或索引?
- corda - 测试网似乎不支持带有 SignatureConstraint 的 Corda4
- javascript - javascript 括号之间的一元加号
- javascript - 为什么编辑 CSS 文件不会像 JS 那样自动实时更新?