如何在log4j2属性中设置类的日志级别

spr*_*boy 15 java log4j log4j2

在log4j中我可以在属性文件中指定一个类来记录调试级别,如下所示:

log4j.logger.com.mycompany.mypackage.ClassName=DEBUG
Run Code Online (Sandbox Code Playgroud)

我如何在log4j2中执行此操作?注意我仍然需要使用新的属性文件(不是xml或json).

TIA

Sot*_*lis 20

正如log4j2配置文档所述

从版本2.4开始,Log4j现在支持通过属性文件进行配置.请注意,属性语法与Log4j 1中使用的语法不同.

然后,它为所有类型的配置元素提供了一个重要的示例.

关于您的问题,您需要在loggers元素中指定记录器,然后配置每个记录器.例如

loggers = mine

logger.mine.name = com.mycompany.mypackage.ClassName
logger.mine.level = DEBUG
Run Code Online (Sandbox Code Playgroud)

请注意,log4j2 .properties默认在类路径中查找文件.

如果找不到测试文件,ConfigurationFactory将log4j2.properties在类路径上查找属性.

但您也可以自己配置位置.您可以使用系统属性

-Dlog4j.configurationFile=conf/log4j.properties
Run Code Online (Sandbox Code Playgroud)

有适当的路径.

  • 这是否意味着我需要另外 3 行来为另一个类指定不同的日志记录?例如, (1) loggers = myOther (2) logger.myOther.name = com.mycompany.otherpackage.OtherClassName (3) logger.myOther.level = INFO (2认同)
  • @kc2001 您可以在 `loggers` 中以逗号分隔列表的形式提供多个记录器。其他属性将需要自己的行。 (2认同)