如何在命令行上设置 log4j 级别?

2022-08-31 11:51:41

我想向我正在处理的类中添加一些 log.debug 语句,并且我希望在运行测试时在输出中看到这一点。我想覆盖命令行上的log4j属性,如下所示:

-Dlog4j.logger.com.mypackage.Thingie=DEBUG

我经常做这种事情。我特别感兴趣的只是在命令行上传递它的方法。我知道如何使用配置文件执行此操作,这不适合我的工作流程。


答案 1

作为 jvm 参数的一部分,您可以设置 。其中FILE_PATH是 log4j.properties 文件的路径。-Dlog4j.configuration=file:"<FILE_PATH>"

请注意,从log4j2开始,要使用的新系统变量是,并且您输入文件的实际路径(即没有前缀),它将根据配置文件的扩展名自动加载工厂:log4j.configurationFilefile:

-Dlog4j.configurationFile=/path/to/log4jconfig.{ext}

答案 2

这些答案实际上劝阻了我不要尝试最简单的事情!只需在你喜欢的场景中为附加器(比如“控制台”)指定一个阈值:log4j.configuration

log4j.appender.console.threshold=${my.logging.threshold}

然后,在命令行上,包括系统属性 。我假设任何其他属性都可以以这种方式进行参数化,但这是全局提高或降低日志记录级别的最简单方法。-Dlog4j.info -Dmy.logging.threshold=INFO


推荐