java - Log4j2 RollingFileAppender 不将日志写入文件
问题描述
我在log4j2.xml中有以下 log4j2 配置,它没有将日志写入文件。我正在使用 Windows 10。我做错了什么?
<?xml version="1.0" encoding="UTF-8"?>
<Configuration status="INFO">
<Appenders>
<RollingFile name="RollingFileAppender" fileName="/var/log/abc/test.log"
filePattern="/var/log/abc/test-%d{yyyy-MM-dd}-%i.log" append="true">
<PatternLayout pattern="%d{DEFAULT} %-5p %c - %m%n"/>
<Policies>
<TimeBasedTriggeringPolicy interval="1" modulate="true"/>
<SizeBasedTriggeringPolicy size="10 MB" />
</Policies>
<DefaultRolloverStrategy max="31"/>
</RollingFile>
</Appenders>
<Loggers>
<Root level="Info">
<AppenderRef ref="RollingFileAppender"/>
</Root>
</Loggers>
</Configuration>
以下是我正在使用的依赖项:
compile group: 'org.apache.logging.log4j', name: 'log4j-api', version: '2.14.0'
compile group: 'org.apache.logging.log4j', name: 'log4j-core', version: '2.14.0'
implementation 'com.fasterxml.jackson.core:jackson-databind:2.12.2'
在我的日志中获取以下内容:
log4j:WARN No appenders could be found for logger (com.xyz.pqr).
log4j:WARN Please initialize the log4j system properly.
log4j:WARN See http://logging.apache.org/log4j/1.2/faq.html#noconfig for more info.
示例代码:
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
public final class MyUtil {
private static Logger logger = LoggerFactory.getLogger(MyUtil.class);
if (condition == true) {
logger.debug("Condition is true.");
return false;
}
}
我错过了什么吗?
解决方案
这些消息
log4j:WARN No appenders could be found for logger (com.xyz.pqr).
log4j:WARN Please initialize the log4j system properly.
log4j:WARN See http://logging.apache.org/log4j/1.2/faq.html#noconfig for more info.
表示存在 log4j 1 并且正在尝试使用它。要解决这个问题,您需要删除 log4j 1.x 依赖项并将其替换为 Log4j2 的 log4j-1.2-api 依赖项。
您的示例代码表明您正在使用 SLF4J API。要将其与 Log4j2 绑定,您必须包含 log4j-slf4j-impl 或 log4j-slf4j18-impl,具体取决于您使用的 SLF4J 版本。
一旦解决了这些依赖关系,如果您仍然看不到日志记录,请将 -Dlog4j2.debug=true 添加到命令行。这会将 Log4j 的初始化记录到 System.out 指向的任何位置。如果你什么也没看到,那就什么都没有。
推荐阅读
- java - 尽管我已经更新了数据,但数组调用返回 null
- javascript - 在 JavaScript 中将数据属性转换为访问器属性,反之亦然
- delphi - 运行类似 shellexecute 的函数时如何阻止 VCL 线程
- python - Spark Scala - 移动平均对齐结果与熊猫函数
- excel - Excel计算日期之间差异在一个范围内的单元格
- bluetooth - 将多个蓝牙设备分组
- django - 模型应该只有一个实例
- swift - 如何获取坐标以在 Mapkit Swift 上显示图钉
- c++ - 如何忽略 libxml HTML 解析错误
- javascript - 修复代码以防止单击时关闭下拉菜单