美文网首页
Log4j 快速上手教程

Log4j 快速上手教程

作者: Funk_V | 来源:发表于2018-03-18 00:53 被阅读0次

    示例:log4j.properties文件

    #定义LOG输出级别
    log4j.rootLogger = DEBUG,Console,File
    #定义日志输出目的地为控制台
    log4j.appender.Console = org.apache.log4j.ConsoleAppender
    log4j.appender.Console.Target = System.out
    #可以灵活地指定日志输出格式,下面一行是指定具体的格式
    log4j.appender.Console.layout = org.apache.log4j.PatternLayout
    log4j.appender.Console.layout.ConversionPattern = [%c] - %m%n
    
    #文件大小到达指定尺寸的时候产生一个新的文件
    log4j.appender.File = org.apache.log4j.RollingFileAppender
    #指定输出目录
    log4j.appender.File.File = logs/ssm.log
    #定义文件最大大小
    log4j.appender.File.MaxFileSize = 10MB
    # 输出所有日志,如果换成DEBUG表示输出DEBUG以上级别日志
    log4j.appender.File.Threshold = ALL
    log4j.appender.File.layout = org.apache.log4j.PatternLayout
    log4j.appender.File.layout.ConversionPattern = [%p] [%d{yyyy-MM-dd HH\:mm\:ss}][%c]%m%n
    

    解析

    log4j.rootLogger = [ level ] , appender1, appender..n

    • level
      日志记录的优先级,从高到低分别为 OFF > FATAL > ERROR > WARN > INFO > DEBUG > ALL
      若指定了某一级别,则应用程序中的所有低于该级别的日志信息不会被打印出来。
    • appender
      Apache Log4j 提供的 Appender 对象主要负责将日志信息打印至不同目的地,比如控制台、文件、网络套接字、NT 事件日志等。

    例如:log4j.rootLogger = WARN, Console, File

    • 应用程序中所有INFO、DEBUG级别的信息都不会打印出来
    • 定义了两个Appender对象,分别为Console和File

    定义了对象,自然需要配置对象的具体属性
    一般来说,配置格式为

    log4j.appender.[ object ] = org.apache.log4j.[ class ]
    log4j.appender.[ object ].[ attribute ] = [ value ]
    ...
    log4j.appender.[ object ].[ attribute ] = [ value ]
    
    • object 前面rootLogger定义的Appender对象,如Console,File
    • class Log4j提供的Appender有多种,一般会用到以下几种:
    CLASS 说明
    ConsoleAppender 控制台
    FileAppender 文件
    DailyRollingFileAppender 每天产生一个日志文件
    RollingFileAppender 文件大小到达指定尺寸的时候产生一个新的文件
    WriterAppender 将日志信息以流格式发送到任意指定的地方
    • attribute 每个 Appender 对象都有不同的属性,这些属性决定了该对象的行为。常用的有:
    属性 描述 value
    layout 可以灵活地指定日志输出格式 org.apache.log4j.PatternLayout、...
    target 目的地可以是控制台、文件,或依赖于 appender 的对象 System.out、...
    threshold 定义一个阀值级别,Appender会输出所有级别大于或等于阀值级别的日志 AllDEBUG、...

    注:所有的Appender都可通过设置Threshold来设置本Appender的启用级别


    关于PatternLayout

    PatternLayout 是一个简单的 Layout 对象,可通过配置文件更改其属性conversionPatter以设置转换模式。
    默认为%r [%t] %p %c %x - %m%n

    字符含义,详见链接


    测试

    log4j.properties

    #定义LOG输出级别
    log4j.rootLogger = DEBUG,Console,File
    #定义日志输出目的地为控制台
    log4j.appender.Console = org.apache.log4j.ConsoleAppender
    log4j.appender.Console.Target = System.out
    #可以灵活地指定日志输出格式,下面一行是指定具体的格式
    log4j.appender.Console.layout = org.apache.log4j.PatternLayout
    log4j.appender.Console.layout.ConversionPattern = [%c] - %m%n
    
    #文件大小到达指定尺寸的时候产生一个新的文件
    log4j.appender.File = org.apache.log4j.RollingFileAppender
    #指定输出目录
    log4j.appender.File.File = logs/ssm.log
    #定义文件最大大小
    log4j.appender.File.MaxFileSize = 10MB
    # 输出所以日志,如果换成DEBUG表示输出DEBUG以上级别日志
    log4j.appender.File.Threshold = WARN
    log4j.appender.File.layout = org.apache.log4j.PatternLayout
    log4j.appender.File.layout.ConversionPattern = [%p] [%d{yyyy-MM-dd HH\:mm\:ss}][%c]%m%n
    

    测试代码

    import org.slf4j.Logger;
    import org.slf4j.LoggerFactory;
    
    public class Log4jTest {
        private static Logger logger = LoggerFactory.getLogger(Log4jTest.class);
    
        public static void main(String args[]) {
            logger.error("Error Message");
            logger.warn("Warn Message");
            logger.info("Info Message");
            logger.debug("Debug Message");
        }
    }
    

    测试结果

    Console.png
    File.png

    相关文章

      网友评论

          本文标题:Log4j 快速上手教程

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