What is the significance of log4j.rootLogger property in log4j.properties file? What happens if i don't use this property?

后端 未结 3 1061
难免孤独
难免孤独 2020-12-04 12:58

What is the significance of log4j.rootLogger property in log4j.properties file? What happens if I don\'t use this property?

Example

3条回答
  •  庸人自扰
    2020-12-04 13:54

    Samudra Gupta explains in his book1:

    The Logger object is the main object that an application developer uses to log any message. The Logger objects acting within a particular instance of an application follow a parent-child hierarchy.

    If you have the following configuration:

    log4j.rootLogger=WARN, stdout
    log4j.appender.stdout=org.apache.log4j.ConsoleAppender
    log4j.appender.stdout.layout=org.apache.log4j.SimpleLayout
    log4j.logger.com.me.proj2=INFO
    

    This is how the logger hierarchy could end up looking:2

    Tree

    Samudra Gupta continues to explain:

    At the top of the hierarchy exists a root logger. The root logger exists outside the scope of any custom logger hierarchy that we may come up with. It always exists as the root logger for all possible logger hierarchies, and it has no namespace. All the other application-specific Logger objects are child objects to the root logger. The parent-child relationship of loggers signifies the dependency of the loggers acting within the same application. A child logger can inherit properties from its parent logger recursively up the tree. Typically, a child logger will inherit the following properties from its parent logger(s):

    • Level: If the child logger has no explicit tree level specified, it will use the level of its closest parent or the first proper level it finds recursively up the hierarchy.
    • Appender: If there is no appender attached to a logger, the child logger uses the appender of its closest parent logger or the first appender it finds recursively up the tree.
    • ResourceBundle: ResourceBundles are key-value pattern properties files used for the localization of logging messages. A child logger inherits any ResourceBundle associated with its parent logger.

    NOTES

    1 Samudra Gupta, Pro Apache Log4j, Second Edition (Berkeley, CA: Apress, 2005), 24-25, ISBN13: 978-1-59059-499-5

    2 Dominic Mitchell, Logging in Java, http://happygiraffe.net/blog/2008/09/03/logging-in-java/, Retrieved 26 May 2014.

提交回复
热议问题