美文网首页
log4j 配置文件详解

log4j 配置文件详解

作者: Draper | 来源:发表于2017-03-25 02:04 被阅读0次

    记下依赖包

    <dependency>  
        <groupId>org.slf4j</groupId>  
        <artifactId>slf4j-api</artifactId>  
        <version>1.6.6</version>  
    </dependency>  
    
    <dependency>  
        <groupId>org.slf4j</groupId>  
        <artifactId>slf4j-log4j12</artifactId>  
        <version>1.6.6</version>  
    </dependency>  
    
    <dependency>  
        <groupId>log4j</groupId>  
        <artifactId>log4j</artifactId>  
        <version>1.2.16</version>  
    </dependency> 
    

    log4j 有三个核心功能

    • 日志信息的优先级
    • 日志信息的输出目的地
    • 日志输出的格式

    而使用配置文件不仅会减轻工作量,而且可以使程序更加灵活

    定义配置文件主要有两种方式

    • 使用 Java 的特性文件,即右键工程名 new 一个名为 log4j.properties 的文件

    这个文件不同的 IDE,不同的项目放在不同的地方,有人说 src 同级, 也有人说
    在 src/main/java 下,还有人说放在 src/main/resource。具体对象,具体讨论

    • 使用 xml 文件,具体怎么配置,我还没有试过。

    语法

    1.根类别(在类别层次的顶部,即全局性的日志级别)
    配置根 Logger

    log4j.rootLogger = [ level ], appenderName, appenderName,...
    
    • level 是日志记录的类别
      从高到低依次排序
    关键字 用途
    OFF 最高级别,关闭所有日志
    FATAL 每个错误事件将会导致退出应用程序,这个时候可以停止应用程序了
    ERROR 虽然发生错误事件,但是不影响系统的继续运行。打印错误异常和信息,如果不需要打印太多,可以使用这个级别
    WARN 会出现潜在错误信息,有些信息不是错误信息,但是需要给程序员一些提示
    INFO 消息在粗粒度级别上突出强调应用程序的运行过程,打印一些感兴趣或者重要的信息。这个可以用于生产环境中输出程序的一些重要信息,但是不能滥用
    DEBUG 指出细粒度事件对于调试还是费城有帮助的,主要打印一些在开发过程中打印一些运行信息
    TRACE 很低级别的日志,一般不会用
    ALL 级别最低,打印所有日志

    log4j 推荐只使用 ERROR, WARN, INFO, DEBUG

    通过定义级别,只有比这个高的级别可以打印出来

    • appenderName 指定日志发送到哪个地方,可以同时指定多个输出地

    例如:

    log4j.rootLogger=INFO,stdout,Runlog,Errorlog
    

    DEBUG 级别日志将会被屏蔽,输出的目的地有三个, stdout 、Runlog 和 Errorlog

    2.配置日志的目的地

    • log4j.appender.appenderName = fully.qualified.name.of.appender.class

    fully.qualifled.name.of.appender.class 是你日志发送目的地的类型
    样式是:org.apache.log4j.XXXXXX

    这里说几个常用的

    XXXXXX 类型 实际使用
    ConsoleAppender 控制台
    FileAppender 文件
    DailyRollingFileAppender 每天产生一个文件 当天之后日志文件就会被以xxx+昨天的日期来命名,也就是每天一个日志文件
    RollingFileAppender 文件到达指定大小产生一个新文件 当日志文件到底指定尺寸时,那么原来的日志文件将会被加上序号,例如xxx.1,值得注意的是,若是再超过指定尺寸(MaxFileSize)需要增加一个日志文件时,那么原来xxx.1的文件会加上1变成xxx.2。也就是说,数字越大的日志文件记录的日志时间越早!
    WriterAppender 将日志以流的形式发送到任意指定地方 ConsoleAppender和FileAppender的父类,一般不直接使用,而是会使用其子类,如ConsoleAppender
    net.SMTPAppender 邮件
    jdbc.JDBCAppender 数据库

    还有一些:GUI组件,套接口服务器,NT 时间记录器,UNIX Syslog 守护进程等。

    3.常用的输出格式

    格式 意义
    -X号 X 信息输出是左对齐
    %p 日志输出信息级别
    %d{} 日志信息产生的信息
    %c 日志信息产生的所在类名
    %m 日志产生的具体信息
    %n 输出日志信息换行

    例如:
    这个我相信不解释大家也能看得懂

    log4j.appender.stdout.layout.ConversionPattern= %5p %d{yyyy-MM-dd HH:mm:ss} %c %m %n 
    log4j.appender.Runlog.layout.ConversionPattern= %5p %d{yyyy-MM-dd HH:mm:ss} %c %m %n 
    log4j.appender.Errorlog.layout.ConversionPattern= %5p %d{yyyy-MM-dd HH:mm:ss} %c %m %n
    

    4.布局
    log4j 提供四种布局

    布局 形式
    org.apache.log4j.HTMLLayout 以HTML表格形式布局
    org.apache.log4j.PatternLayout 可以灵活地指定布局模式
    org.apache.log4j.SimpleLayout 包含日志信息的级别和信息字符串
    org.apache.log4j.TTCCLayout 包含日志产生的时间、线程、类别等等信息

    例如:

    log4j.appender.stdout.layout=org.apache.log4j.HTMLLayout
    

    这里给大家推荐一篇非常好的博客
    Log4j扩展使用--输出地Appender

    参考资料:
    log4j的8个日志级别(OFF、FATAL、ERROR、WARN、INFO、DEBUG、TRACE、 ALL)
    Log4j输出终端(Appender)详解

    相关文章

      网友评论

          本文标题:log4j 配置文件详解

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