zoukankan      html  css  js  c++  java
  • 日志入门

    使用slf4j和log4j来构造日志系统。目标是:(1)按天存放日志(2)不同级别按照不同文件输出

    一,slf4j

    • 安装
    1. 下载 slf4j-api-1.7.25.jar,slf4j-log4j12-1.7.25.jar(使用log4j作为具体的日志工具)
    • 运行效率
    1. log4j需要使用类似 logger.isDebugEnabled()来解决字符串拼接的性能消耗,slf4j使用{}来做字符串替换。

    二,log4j

    • logger: 有日志级别和输出appender两个属性
    1. 每个logger有且只有一个日志级别。如果单独定义就是定义级别,如果没有单独定义则继承父类的日志级别。----取最小子集
    2. 每个logger有多个appender。首先会继承父类所有的appender,再加上自己单独定义的appender。----------取最大合集
    • properties的配置讲解
    1. 配置logger

        og4j.rootLogger  =   [ level ]   ,  appenderName1 ,  appenderName2    -----配置根logger的日志级别和输出目的地

        log4j.logger.loggerName =  [ level ]   ,  appenderName1 ,  appenderName2  -----配置名字为loggerName的logger

    1. 配置Appender

        log4j.appender.appenderName  =  fully.qualified.name.of.appender.class 
        log4j.appender.appenderName.option1  =  value1 
         log4j.appender.appenderName.optionN  =  valueN 

        

      • 控制台选项

          Threshold=DEBUG:指定日志消息的输出最低层次。
          ImmediateFlush=true:默认值是true,意谓着所有的消息都会被立即输出。
          Target=System.err:默认情况下是:System.out,指定输出控制台

      • FileAppender 选项

          Threshold=DEBUF:指定日志消息的输出最低层次。
          ImmediateFlush=true:默认值是true,意谓着所有的消息都会被立即输出。
          File=mylog.txt:指定消息输出到mylog.txt文件。
          Append=false:默认值是true,即将消息增加到指定文件中,false指将消息覆盖指定的文件内容。

      • RollingFileAppender 选项

          Threshold=DEBUG:指定日志消息的输出最低层次。
          ImmediateFlush=true:默认值是true,意谓着所有的消息都会被立即输出。
          File=mylog.txt:指定消息输出到mylog.txt文件。
          Append=false:默认值是true,即将消息增加到指定文件中,false指将消息覆盖指定的文件内容。
          MaxFileSize=100KB: 后缀可以是KB, MB 或者是 GB. 在日志文件到达该大小时,将会自动滚动,即将原来的内容移到mylog.log.1文件。
          MaxBackupIndex=2:指定可以产生的滚动文件的最大数。

    三,实例

    • 服务器tomcat配置

    ### 配置logger名称和日志输出级别 ###
    log4j.rootLogger = debug, stdout,errorAppender #根logger现在消息级别是debug,有一个appender,就是stdout,
    log4j.logger.org.springframework = warn,warnAppender
    log4j.logger.org.apache = warn,warnAppender
    log4j.logger.com.mchange = warn, warnAppender

    ### 输出到控制台 ###
    log4j.appender.stdout = org.apache.log4j.DailyRollingFileAppender
    log4j.appender.stdout.File = ${catalina.home}/logs/catalina.out
    log4j.appender.stdout.layout = org.apache.log4j.PatternLayout
    log4j.appender.stdout.layout.ConversionPattern = %-d{HH:mm:ss} [ %l] - [ %p ] %m%n

    ### 输出到日志文件 ###
    ## 输出DEBUG级别以上的日志--------在catalina.out中有debug级别的日志,所以这个可以不用
    log4j.appender.warnAppender= org.apache.log4j.DailyRollingFileAppender
    log4j.appender.warnAppender.File = /home/logs/kshy/warn.log
    log4j.appender.warnAppender.Append = true
    log4j.appender.warnAppender.Threshold = WARN  ## 输出WARN  级别以上的日志
    log4j.appender.warnAppender.LevelMin=debug
    log4j.appender.warnAppender.LevelMax=debug
    log4j.appender.warnAppender.layout = org.apache.log4j.PatternLayout
    log4j.appender.warnAppender.layout.ConversionPattern = %-d{HH:mm:ss} [ %l ] - [ %p ] %m%n

    ### 保存异常信息到单独文件 ###
    ## 只输出ERROR级别以上的日志!!!
    log4j.appender.errorAppender = org.apache.log4j.DailyRollingFileAppender
    log4j.appender.errorAppender.File = /home/logs/kshy/error.log
    log4j.appender.errorAppender.Append = true
    log4j.appender.errorAppender.Threshold = ERROR ## 输出ERROR级别以上的日志
    log4j.appender.errorAppender.layout = org.apache.log4j.PatternLayout
    log4j.appender.errorAppender.layout.ConversionPattern = %-d{HH:mm:ss} [ %l ] - [ %p ] %m%n

  • 相关阅读:
    LeetCode "Jump Game"
    LeetCode "Pow(x,n)"
    LeetCode "Reverse Linked List II"
    LeetCode "Unique Binary Search Trees II"
    LeetCode "Combination Sum II"
    LeetCode "Divide Two Integers"
    LeetCode "First Missing Positive"
    LeetCode "Clone Graph"
    LeetCode "Decode Ways"
    LeetCode "Combinations"
  • 原文地址:https://www.cnblogs.com/ttkl90/p/6573945.html
Copyright © 2011-2022 走看看