这两天在研究Log4j 了解到Logger有四种方法,
分别为logger.degug(),logger.info(),logger.warn(),logger.error() 。
我想问一下这四种级别在程序中的应用是按照自己想法来的么?
比如说我觉得有一个地方会出问题,问题的级别我来给他自定义为warn级别,所以我采用Logger.warn()这个方法。
还是说这个问题会出现四种级别的警告,当我调用这些方法的时候会打印出相应级别的警告。
不知道我说清楚没有,麻烦大家帮我看看这个问题,谢谢ps:配置文件中配置log4j.rootLogger = INFO,system.out这句话会打印不出Logger.debug()中的信息这个我知道, 我就想知道这四种方法存在有什么意义,在我看来如果只定义一个方法并在输出的时候将信息打印出来也是一样的,何必要定义四种方法。

解决方案 »

  1.   

    日志对于系统上线后跟踪系统的日常运行状态非常有效,当然在开发阶段日志对于系统调试也很有帮助。在开发阶段,可以把日志级别完全只定义为同一级别(比如说info级别),因为这时的日志更多的时候是扮演着System.out.println的角色,但是这会存在一个弊端,因为并不是所有的日志信息在系统上线后仍有用,对于那些类似于System.out.println打印出来的日志,在上线后是没有太大的参考价值,这样的日志是完全没必要写进日志文件里,但是如果日志级别只定义为同一级别,是无法选择将哪些信息写入日志文件的。所以建议在开发阶段就将日志定义为不同的级别,对于那些只作为开发的调试日志可以定义为低级别,需要作为系统运行情况的跟踪日志信息可以定义为高级别,这样在系统上线时就可以将日志级别调高,只将那些跟踪日志写入日志文件里。
      

  2.   

    日志对于系统上线后跟踪系统的日常运行状态非常有效,当然在开发阶段日志对于系统调试也很有帮助。在开发阶段,可以把日志级别完全只定义为同一级别(比如说info级别),因为这时的日志更多的时候是扮演着System.out.println的角色,但是这会存在一个弊端,因为并不是所有的日志信息在系统上线后仍有用,对于那些类似于System.out.println打印出来的日志,在上线后是没有太大的参考价值,这样的日志是完全没必要写进日志文件里,但是如果日志级别只定义为同一级别,是无法选择将哪些信息写入日志文件的。所以建议在开发阶段就将日志定义为不同的级别,对于那些只作为开发的调试日志可以定义为低级别,需要作为系统运行情况的跟踪日志信息可以定义为高级别,这样在系统上线时就可以将日志级别调高,只将那些跟踪日志写入日志文件里。