首页 > 解决方案 > log4j2 的问题

问题描述

我对 log4j2 有两个问题:

  1. 我无法弄清楚如何在命令行中指定日志根级别。

我使用log4j2.xml配置文件执行可运行的 jar

java -Dlog4j.configurationFile=log4j2.xml  -jar my.jar

log4j2.xml将默认记录器根日志级别设置为 INFO。但有时我需要指定 DEBUG。

  1. -Dlog4j.configurationFile=log4j2.xml在 Windows 上不起作用,尽管它在 Mac 和 Linux 上运行良好。log4j2.xml确实存在于当前文件夹中。

使用 Windows PowerShell 执行上述命令行时出现错误

Error: Could not find or load main class .configurationFile=log4j2.xml

我试过-Dlog4j.configurationFile=file://log4j2.xml-Dlog4j.configurationFile=./log4j2.xml-Dlog4j.configurationFile=file://<full_path_to_log4j2.xml>同样的错误

标签: log4jlog4j2

解决方案


  1. 将名为“rootLevel”的属性定义为

    ${sys:rootLevel:=INFO}

然后在您的根记录器上指定

<Root level="${rootLevel}">

根级别现在默认为 Info,您可以在命令行上使用 -DrootLevel=DEBUG 覆盖它。

  1. 问题是属性名称中的点。在 Windows 上,您需要将其放在引号中。

推荐阅读