(1)private static Logger logger = Logger.getLogger(Hello.class);
通过这种方法去创建的logger记录器的原理是怎样的呢? logger记录器和根记录器关系是怎么样的呢?
(2)在log4j.properties中配置的 
log4j.logger.java.sql.Connection=DEBUG 又是怎么工作的呢? logger记录器怎么去关联上他呢?log4j工作原理

解决方案 »

  1.   

    PropertyConfigurator.configure();这个方法会去读取配置文件。
      

  2.   


    恩,这个我知道。放在src下面就会自动去找。 
    问题是
    private static Logger logger = Logger.getLogger(Hello.class);中的这个logger对象到底是怎么调用的配置文件里面的记录器?是调用那个记录器?
      

  3.   


    恩,这个我知道。放在src下面就会自动去找。 
    问题是
    private static Logger logger = Logger.getLogger(Hello.class);中的这个logger对象到底是怎么调用的配置文件里面的记录器?是调用那个记录器?log4j只是去获取你的配置,并不是调用。比如获取到DEBUG这个配置,那写日志的时候就会调用debug方法。各个方法逻辑不一样。
      

  4.   


    恩,这个我知道。放在src下面就会自动去找。 
    问题是
    private static Logger logger = Logger.getLogger(Hello.class);中的这个logger对象到底是怎么调用的配置文件里面的记录器?是调用那个记录器?log4j只是去获取你的配置,并不是调用。比如获取到DEBUG这个配置,那写日志的时候就会调用debug方法。各个方法逻辑不一样。你好,但是我现在就是不知道我的这个logger获取的那个记录器啊。
    比如:
    log4j.rootLogger=DEBUG,std1
    log4j.logger.loggerAAA = INFO,std2 
    现在我的logger是调用std1,还是std2呢
      

  5.   


    你好,   你知道配置输出sql的时候有
    log4j.logger.java.sql.Connection=DEBUG   
    Connection类里面又没有logger.error("");语句,那这个连接信息从那里输出的呢?
      

  6.   

    Quote: 引用 5 楼 huxiweng 的回复:
    你好,   你知道配置输出sql的时候有
    log4j.logger.java.sql.Connection=DEBUG   
    Connection类里面又没有logger.error("");语句,那这个连接信息从那里输出的呢?
      

  7.   


    你好,   你知道配置输出sql的时候有
    log4j.logger.java.sql.Connection=DEBUG   
    Connection类里面又没有logger.error("");语句,那这个连接信息从那里输出的呢?你可以在配置文件中指定输出的位置,如果没有logger.error("");语句也会输出
      

  8.   


    你好,   你知道配置输出sql的时候有
    log4j.logger.java.sql.Connection=DEBUG   
    Connection类里面又没有logger.error("");语句,那这个连接信息从那里输出的呢?你可以在配置文件中指定输出的位置,如果没有logger.error("");语句也会输出只要有异常错误。
      

  9.   


    你好,   你知道配置输出sql的时候有
    log4j.logger.java.sql.Connection=DEBUG   
    Connection类里面又没有logger.error("");语句,那这个连接信息从那里输出的呢?你可以在配置文件中指定输出的位置,如果没有logger.error("");语句也会输出那是不是只要在配置文件里定义了error的类都会在error的时候输出信息呢
      

  10.   


    你好,   你知道配置输出sql的时候有
    log4j.logger.java.sql.Connection=DEBUG   
    Connection类里面又没有logger.error("");语句,那这个连接信息从那里输出的呢?你可以在配置文件中指定输出的位置,如果没有logger.error("");语句也会输出那是不是只要在配置文件里定义了error的类都会在error的时候输出信息呢
    可以配置不同的级别,如果配置是error,那么error以下级别信息不回输出。
      

  11.   

    (1)logger继承根,继承所有根的记录器
    (2)这也是创建一个记录器java.sql.Connection并设定级别,如果他是一个类并在这个类里面有调用的话就会输出日志。如果他是一个包的话就会遵守点级关系,就是这个包下面的内容都继承这个包的级别和记录器