Log4j

281 阅读3分钟

基本配置

#配置根Logger
log4j.rootLogger  =   [ level ]   ,  appenderName ,  appenderName1 ,  …
#配置日志信息输出目的地Appender及Appender选项
log4j.appender.appenderName = fully.qualified.name.of.appender.class    
log4j.appender.appenderName.option = value1 
log4j.appender.appenderName.optionN = valueN 
#配置日志信息的格式(布局)及格式布局选项  
appender.appenderName.layout = fully.log4j.qualified.name.of.layout.class
log4j.appender.appenderName.layout.option1 = value1
log4j.appender.appenderName.layout.optionN = valueN
  1. 其中level是日志输出级别,从低到高有DEBUG、INFO、WARN、ERROR
    通过在这里定义的级别,您可以控制到应用程序中相应级别的日志信息的开关。
    比如在这里定义了INFO级别,则应用程序中所有DEBUG级别的日志信息将不被打印出来
  1. appenderName是日志输出位置配置的命名,其中log4j.appender.appenderName = fully.qualified.name.of.appender.class 应换成以下信息输出的目的地
org.apache.log4j.ConsoleAppender(控制台)
org.apache.log4j.FileAppender(文件)
org.apache.log4j.DailyRollingFileAppender(每天产生一个日志文件)
org.apache.log4j.RollingFileAppender(文件大小到达指定尺寸的时候产生一个新的文件)
org.apache.log4j.WriterAppender(将日志信息以流格式发送到任意指定的地方)
  1. appender.appenderName.layout = fully.log4j.qualified.name.of.layout.class格式布局应换成以下信息
org.apache.log4j.HTMLLayout(以HTML表格形式布局)
org.apache.log4j.PatternLayout(可以灵活地指定布局模式)
org.apache.log4j.SimpleLayout(包含日志信息的级别和信息字符串)
org.apache.log4j.TTCCLayout(包含日志产生的时间、线程、类别等等信息)
  1. log4j.appender.appenderName.option中option应替换的属性/选项
  • ConsoleAppender控制台选项
    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:指定可以产生的滚动文件的最大数。         
  1. 配置示例
    og4j.rootLogger=DEBUG, consoleLog, toINFO, toERROR

    log4j.appender.consoleLog=org.apache.log4j.ConsoleAppender
    log4j.appender.consoleLog.Threshold=INFO
    log4j.appender.consoleLog.Target=System.out
    log4j.appender.consoleLog.layout=org.apache.log4j.PatternLayout
    log4j.appender.consoleLog.layout.ConversionPattern=[%d{yyyy/MM/dd HH:mm:ss}][%p][%C{1}] %m%n

    log4j.appender.toINFO=org.apache.log4j.DailyRollingFileAppender
    log4j.appender.toINFO.file=${catalina.home}/logs/octopusweb_info.log
    log4j.appender.toINFO.Threshold=INFO
    log4j.appender.toINFO.layout=org.apache.log4j.PatternLayout
    log4j.appender.toINFO.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss,SSS} %-4r %-5p [%t] %37c %3x - %m%n

    log4j.appender.toERROR=org.apache.log4j.DailyRollingFileAppender
    log4j.appender.toERROR.file=${catalina.home}/logs/octopusweb_error.log
    log4j.appender.toERROR.Threshold=ERROR
    log4j.appender.toERROR.layout=org.apache.log4j.PatternLayout
    log4j.appender.toERROR.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss,SSS} %-4r %-5p [%t] %37c %3x - %m%n
  1. 代码使用
    1、使用Log4j,第一步就是获取日志记录器,这个记录器将负责控制日志信息。其语法为:
    public static Logger getLogger( String name)
    通过指定的名字获得记录器,如果必要的话,则为这个名字创建一个新的记录器。Name一般取本类的名字,比如:
    static Logger logger = Logger.getLogger ( ServerWithLog4j.class.getName () )
    2、当获得了日志记录器之后,第二步将配置Log4j环境,其语法为:
    BasicConfigurator.configure():自动快速地使用缺省Log4j环境。  
    PropertyConfigurator.configure(String configFilename):读取使用Java的特性文件编写的配置文件。  
    DOMConfigurator.configure(String filename):读取XML形式的配置文件。
    3、插入记录信息(格式化日志信息)
    Logger.debug(Object message);  
    Logger.info(Object message);  
    Logger.warn(Object message);  
    Logger.error(Object message);
  1. 记录日志到指定文件
    log4j.logger.cacheERROR=ERROR,cacheERROR
    #指定该logger不会使用父logger的配置,不适用rootLogger的配置
    log4j.additivity.cacheERROR=false
    log4j.appender.cacheERROR=org.apache.log4j.RollingFileAppender
    log4j.appender.cacheERROR.file=${catalina.home}/logs/octopuscache_error.log
    log4j.appender.cacheERROR.Threshold=ERROR
    log4j.appender.cacheERROR.layout=org.apache.log4j.PatternLayout
    log4j.appender.cacheERROR.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss,SSS} %-4r %-5p [%t] %37c %3x - %m%n
    log4j.appender.cacheERROR.MaxFileSize=13142880
    log4j.appender.cacheERROR.MaxBackupIndex=3
  1. 参考文档 blog.csdn.net/u013870094/article/details/79518028