How to set the log level on a class in log4j2 prop

2019-04-05 01:42发布

问题:

in log4j I could specify a class in the properties file to log at the debug level like this:

log4j.logger.com.mycompany.mypackage.ClassName=DEBUG

How do I do this in log4j2? Note I still need to use the new property file (not xml or json).

TIA

回答1:

As the log4j2 configuration documentation states

As of version 2.4, Log4j now supports configuration via properties files. Note that the property syntax is NOT the same as the syntax used in Log4j 1.

It then provides a substantial example for all types of configuration elements.

Concerning your question, you need to specify your loggers in a loggers element, then configure each of them. For example

loggers = mine

logger.mine.name = com.mycompany.mypackage.ClassName
logger.mine.level = DEBUG

Note that log4j2 looks for a .properties file on the classpath by default.

If a test file cannot be located the properties ConfigurationFactory will look for log4j2.properties on the classpath.

But you can also configure the location yourself. You can use the system property

-Dlog4j.configurationFile=conf/log4j.properties

with an appropriate path.