首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Log4j 2.如何获取log4j的调试消息?

Log4j 2.如何获取log4j的调试消息?
EN

Stack Overflow用户
提问于 2013-10-24 19:04:21
回答 3查看 28.1K关注 0票数 16

据我所知,log4j可以处理系统属性-Dlog4j.debug。如果您使用它运行应用程序,您将得到log4j的调试输出。

示例: java -Dlog4j.debug -jar test.jar

对于log4j 2有类似的东西吗?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2015-02-19 03:39:34

2018年1月更新:

在Log4j 2.10中,这很简单:只需使用系统属性log4j2.debug运行程序(不需要值;空字符串就可以了)。

关于状态记录器的当前(log4j2.1)文档有点混乱。基本上:

  • 在找到配置之前,可以使用系统属性org.apache.logging.log4j.simplelog.StatusLogger.level控制状态记录器级别。
  • 在找到配置之后,可以使用" status“属性在配置文件中控制状态记录器级别,例如:<Configuration status="trace">

更新:log4j2.2中改进了文档

票数 13
EN

Stack Overflow用户

发布于 2013-12-09 06:51:02

我在启动和运行Log4J2时遇到了令人沮丧的困难,打印StatusLogger也不例外。理论上,您可以使用status字段在配置文件中设置它,但是我至今还无法做到这一点。

但是,您可以在主方法的开头运行以下命令:

代码语言:javascript
复制
StatusConsoleListener listener = new StatusConsoleListener(Level.ALL);
StatusLogger.getLogger().registerListener(listener);
LogManager.getLogger(LogManager.ROOT_LOGGER_NAME); // initialize logger

注意,您的main()类不能有任何静态记录器,否则它们将在调用之前被初始化,这意味着加载状态消息不会打印。

票数 1
EN

Stack Overflow用户

发布于 2020-05-27 17:15:17

如果有人需要以编程方式设置DEBUG级别

代码语言:javascript
复制
// for your custom logger
Configurator.setLevel("com.name.of.logger", Level.DEBUG);
// for root logger
Configurator.setRootLevel(Level.DEBUG);

或不导入

代码语言:javascript
复制
org.apache.logging.log4j.core.config.Configurator.setLevel(
    "com.name.of.logger", 
    org.apache.logging.log4j.Level.DEBUG
);
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/19574413

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档