log4j【2】(Category与Logger )

来源:互联网 发布:网络直销流程五步 编辑:程序博客网 时间:2024/06/16 08:23

摘自官方文档:就是说logger是category的子类,功能比父类多

Logger is a subclass of Category, i.e. it extends Category. In other words, a loggeris a category. Thus, all operations that can be performed on a category can be performed on a logger. Internally, whenever log4j is asked to produce a Category object, it will instead produce a Logger object. Log4j 1.2 willnever produce Category objects but onlyLogger instances. In order to preserve backward compatibility, methods that previously accepted category objects still continue to accept category objects.

For example, the following are all legal and will work as expected.

       // Deprecated form:       Category cat = Category.getInstance("foo.bar")       // Preferred form for retrieving loggers:       Logger logger = Logger.getLogger("foo.bar")   

The first form is deprecated and should be avoided.

There is absolutely no need for new client code to use or refer to theCategory class. Whenever possible, please avoid referring to it or using it.

配置根Logger,其语法为:0

  log4j.rootLogger   =   [   level   ]   ,   appenderName,   appenderName,   …

  其中,level   是日志记录的优先级,分为OFF、FATAL、ERROR、WARN、INFO、DEBUG、ALL或者自定义的级别。Log4j建议只使用四个级别,优先级从高到低分别是ERROR、WARN、INFO、DEBUG。通过在这里定义的级别,您可以控制到应用程序中相应级别的日志信息的开关。比如在这里定义了INFO级别,则应用程序中所有DEBUG级别的日志信息将不被打印出来。   appenderName就是指定日志信息输出到哪个地方。可同时指定多个输出目的地。
log4j.rootCategory=DEBUG,   stdout,R

就是说我要显示所有优先权等於和高于Debug的信息。
在log4j.properties文件里把 "log4j.rootCategory=DEBUG,stdout,R "改写成 "log4j.rootCategory=OFF,   stdout,R ",这样所有的log信息都不会显示了;解决了本文开始提出的问题。
在log4j.properties文件里把 "log4j.rootCategory=DEBUG,stdout,R "改写成 "log4j.rootCategory=INFO,   stdout,R ",这样只显示INFO,   WARN,   ERROR的log信息,而DEBUG信息不会被显示;

0 0