美文网首页我爱编程
log4j 父logger和子logger

log4j 父logger和子logger

作者: 秋名山车神_f776 | 来源:发表于2018-04-11 10:05 被阅读0次

    ** 定义子logger其目的就是能够在某一范围内(某一个class或者某一个package)下面,日志的输出方式与其他地方的日志输出方式不同。**

    log4j.properties

    [java] view plain copy

    <embed id="ZeroClipboardMovie_1" src="https://csdnimg.cn/public/highlighter/ZeroClipboard.swf" loop="false" menu="false" quality="best" bgcolor="#ffffff" name="ZeroClipboardMovie_1" allowscriptaccess="always" allowfullscreen="false" type="application/x-shockwave-flash" pluginspage="http://www.macromedia.com/go/getflashplayer" flashvars="id=1&width=16&height=16" wmode="transparent" width="16" height="16" align="middle">

    1. <strong><span style="font-size:14px;">log4j.rootLogger = DEBUG,stdout,D

    2. log4j.debug=ture //是否打开log4j的内部日志打印

    3. (ConsoleAppender:控制台打印)

    4. log4j.appender.stdout = org.apache.log4j.ConsoleAppender

    5. log4j.appender.stdout.Target = System.out

    6. log4j.appender.stdout.layout = org.apache.log4j.PatternLayout

    7. log4j.appender.stdout.layout.ConversionPattern = [%-5p] %d{yyyy-MM-dd HH:mm:ss,SSS} method:%l%n%m%n

    8. (DailyRollingFileAppender)

    9. log4j.appender.D = org.apache.log4j.DailyRollingFileAppender

    10. log4j.appender.D.File = G://logs/log.log

    11. log4j.appender.D.Append = true

    12. log4j.appender.D.Threshold = DEBUG

    13. log4j.appender.D.layout = org.apache.log4j.PatternLayout

    14. log4j.appender.D.layout.ConversionPattern = %-d{yyyy-MM-dd HH:mm:ss} [ %t:%r ] - [ %p ] %m%n

    15. (mail)

    16. log4j.appender.mail=org.apache.log4j.net.SMTPAppender

    17. log4j.appender.mail.Threshold=DEBUG

    18. log4j.appender.mail.BufferSize=10

    19. log4j.appender.mail.From = 123@qq.com

    20. log4j.appender.mail.SMTPHost=smtp.qq.com

    21. log4j.appender.mail.Subject=Log4J Message

    22. log4j.appender.mail.SMTPUsername=123

    23. log4j.appender.mail.SMTPPassword=xxx

    24. log4j.appender.mail.To= 456@qq.com

    25. log4j.appender.mail.layout=org.apache.log4j.PatternLayout

    26. log4j.appender.mail.layout.ConversionPattern=[%-5p] %d(%r) --> [%t] %l: %m %x %n

    27. 配置子logger,目的就是控制一定范围内的日志输出,比如这里的子logger是控制cn.server.test包下面的所有类的日志输出,其父logger就是rootLogger

    28. log4j.logger.cn.server.test=error,E

    29. log4j.additivity.cn.server.test=false //

    30. log4j.appender.E = org.apache.log4j.DailyRollingFileAppender

    31. log4j.appender.E.File =G://logs/error.log

    32. log4j.appender.E.Append = true

    33. log4j.appender.E.Threshold = ERROR

    34. log4j.appender.E.layout = org.apache.log4j.PatternLayout

    35. log4j.appender.E.layout.ConversionPattern = %-d{yyyy-MM-dd HH:mm:ss} [ %t:%r ] - [ %p ] %m%n

       **配置子logger,目的就是控制一定范围内的日志输出,比如这里的子logger是控制cn.server.test包下面的所有类的日志输出,其父logger就是rootLogger。**
      

    [java] view plain copy

    <embed id="ZeroClipboardMovie_2" src="https://csdnimg.cn/public/highlighter/ZeroClipboard.swf" loop="false" menu="false" quality="best" bgcolor="#ffffff" name="ZeroClipboardMovie_2" allowscriptaccess="always" allowfullscreen="false" type="application/x-shockwave-flash" pluginspage="http://www.macromedia.com/go/getflashplayer" flashvars="id=2&width=16&height=16" wmode="transparent" width="16" height="16" align="middle">

    1. log4j.logger.cn.server.test=error,E

    ** 在cn.server.test包里面中使用**

    [java] view plain copy

    <embed id="ZeroClipboardMovie_3" src="https://csdnimg.cn/public/highlighter/ZeroClipboard.swf" loop="false" menu="false" quality="best" bgcolor="#ffffff" name="ZeroClipboardMovie_3" allowscriptaccess="always" allowfullscreen="false" type="application/x-shockwave-flash" pluginspage="http://www.macromedia.com/go/getflashplayer" flashvars="id=3&width=16&height=16" wmode="transparent" width="16" height="16" align="middle">

    1. Logger logger = Logger.getLogger(xxx.class)

    得到logger对象,然后使用logger对象进行日志输入的时候,logger会根据xxx.class的全类名找到这里声明的子Logger

    [plain] view plain copy

    <embed id="ZeroClipboardMovie_4" src="https://csdnimg.cn/public/highlighter/ZeroClipboard.swf" loop="false" menu="false" quality="best" bgcolor="#ffffff" name="ZeroClipboardMovie_4" allowscriptaccess="always" allowfullscreen="false" type="application/x-shockwave-flash" pluginspage="http://www.macromedia.com/go/getflashplayer" flashvars="id=4&width=16&height=16" wmode="transparent" width="16" height="16" align="middle">

    1. log4j.logger.cn.server.test=error,E

    在cn.server.test包外的类,也可以使用

    [java] view plain copy

    <embed id="ZeroClipboardMovie_5" src="https://csdnimg.cn/public/highlighter/ZeroClipboard.swf" loop="false" menu="false" quality="best" bgcolor="#ffffff" name="ZeroClipboardMovie_5" allowscriptaccess="always" allowfullscreen="false" type="application/x-shockwave-flash" pluginspage="http://www.macromedia.com/go/getflashplayer" flashvars="id=5&width=16&height=16" wmode="transparent" width="16" height="16" align="middle">

    1. Logger logger = Logger.getLogger("cn.server.test");

    特别指定使用该子logger进行日志输出。
    log4j的additivity属性: 表示子logger是否要在父logger的appender中输出日志,若是additivity设为false,则子Logger只会在自己的appender里输出,而不会在父Logger的appender里输出。

    相关文章

      网友评论

        本文标题:log4j 父logger和子logger

        本文链接:https://www.haomeiwen.com/subject/hbhahftx.html