log4j - log4j2 的问题
问题描述
我对 log4j2 有两个问题:
- 我无法弄清楚如何在命令行中指定日志根级别。
我使用log4j2.xml配置文件执行可运行的 jar
java -Dlog4j.configurationFile=log4j2.xml -jar my.jar
log4j2.xml将默认记录器根日志级别设置为 INFO。但有时我需要指定 DEBUG。
- -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>同样的错误
解决方案
将名为“rootLevel”的属性定义为
${sys:rootLevel:=INFO}
然后在您的根记录器上指定
<Root level="${rootLevel}">
根级别现在默认为 Info,您可以在命令行上使用 -DrootLevel=DEBUG 覆盖它。
- 问题是属性名称中的点。在 Windows 上,您需要将其放在引号中。
推荐阅读
- php - 此集合实例上不存在异常属性 [图像]
- python - 更快地对包含 10k+ 个文件的文件夹中的 CSV 列表进行排序
- reactjs - Auth0 没有通过 react.js 类组件传递用户道具
- sql - 在没有 CTE 的情况下拆分 SQL 中的重叠日期
- node.js - 停止静态服务的 React 应用程序调用服务器路径
- c++ - 使用命名的 lambda 与函数 - 在 lambda 的情况下变量的额外空间使用?
- python - Python Flask Render_Template 获取/设置变量
- flutter - Dart 中的 case 表达式必须是常量
- reactjs - 选择从输入生成的动态 - reactjs
- java - RecyclerView的TextView内缩进长句和数字