java中log4j日志级别及配置文件详解, log4j组成, log4j日志级别有哪些, log4jproperties配置文件详解 01

亦凉 2021-11-29 07:34 694阅读 0赞

1. Log4j的日志输出级别及配置文件详解

1.1 Log4j的组件构成

Log4j由三个重要的组件构成:日志信息的优先级,日志信息的输出目的地,日志信息的输出格式。

  • 日志信息的优先级从高到低有ERROR、WARN、
    INFO、DEBUG,分别用来指定这条日志信息的重要程度;
  • 日志信息的输出目的地指定了日志将打印到控制台还是文件中;
  • 而输出格式则控制了日志信息的显示内容。

1.2 日志级别有哪些

ALL 各级包括自定义级别
DEBUG 指定细粒度信息事件是最有用的应用程序调试
ERROR 错误事件可能仍然允许应用程序继续运行
FATAL 指定非常严重的错误事件,这可能导致应用程序中止
INFO 指定能够突出在粗粒度级别的应用程序运行情况的信息的消息
OFF 这是最高等级,为了关闭日志记录
TRACE 指定细粒度比DEBUG更低的信息事件
WARN 指定具有潜在危害的情况

  • 对于标准级别它们关系如下:
    ALL < DEBUG < INFO < WARN < ERROR < FATAL < OFF。
  • 验证Log4j的规则:

    public class LogClass {
    private static org.apache.log4j.Logger log = Logger

    1. .getLogger(LogClass.class);

    public static void main(String[] args) {

    1. log.setLevel(Level.WARN);
    2. log.trace("Trace Message!");
    3. log.debug("Debug Message!");
    4. log.info("Info Message!");
    5. log.warn("Warn Message!");
    6. log.error("Error Message!");
    7. log.fatal("Fatal Message!");

    }
    }

当编译并运行LogClass程序会产生以下结果:
Warn Message!
Error Message!
Fatal Message!

1.3 Log4j.properties配置文件详解

  1. log4j.rootLogger

    log4j.rootLogger=DEBUG,console,FILE

    • log4j.rootLogger用来配置日志输出的优先级和日志输出的目的地。
    • 第一个字段DEBUG指定优先级,只能指定一个字段。
    • 第二个字段和第三个字段,用来指定日志输出的目的地。console代表输出到控制台,FILE代表输出到文件。
    • 如果只有一个输出目的地,我们也可以只指定一个字段。
  2. log4j.appender.console

    log4j.appender.console=org.apache.log4j.ConsoleAppender

log4j.appender.console用来配置具体的类,这里的console就是我们在上面定义的log4j.rootLogger=DEBUG,console,FILE

  1. threshold

    log4j.appender.console.threshold=INFO

threshold是个全局的过滤器,把低于所设置的level的信息过滤掉,不显示出来。

  1. layout

    log4j.appender.console.layout=org.apache.log4j.PatternLayout

指定布局样式,Log4j具有以下几种类型的布局Layout
PatternLayout:根据指定的转换模式格式化日志输出
HTMLLayout:格式化日志输出为HTML表格
XMLLayout:格式化日志输出为XML文件
SimpleLayout:以一种非常简单的方式格式化日志输出
TTCCLayout:包含日志产生的时间、线程、类别等信息

  1. ConversionPattern

    log4j.appender.console.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} [%5p] - %c -%F(%L) -%m%n

设置日志的布局格式

  1. FILE

    log4j.appender.FILE=org.apache.log4j.RollingFileAppender

    • 输出到文件
      org.apache.log4j.ConsoleAppender(输出日志到控制台)
      org.apache.log4j.FileAppender(输出日志到文件)
      org.apache.log4j.DailyRollingFileAppender(输出日志到文件,且每天产生一个日志文件)
      org.apache.log4j.RollingFileAppender(输出日志到文件,且文件大小到达指定尺寸的时候产生一个新的文件)
      org.apache.log4j.WriterAppender(将日志信息以流格式发送到任意指定的地方)
    • ConsoleAppender选项:
      Threshold=WARN:指定日志信息的最低输出级别,默认为DEBUG。
      ImmediateFlush=true:表示所有消息都会被立即输出,设为false则不输出,默认值是true。
      Target=System.err:默认值是System.out。
    • FileAppender选项:
      Threshold=WARN:指定日志信息的最低输出级别,默认为DEBUG。
      ImmediateFlush=true:表示所有消息都会被立即输出,设为false则不输出,默认值是true。
      Append=false:true表示消息增加到指定文件中,false则将消息覆盖指定的文件内容,默认值是true。
      File=D:/logs/logging.log4j:指定消息输出到logging.log4j文件中。
    • DailyRollingFileAppender选项:
      Threshold=WARN:指定日志信息的最低输出级别,默认为DEBUG。
      ImmediateFlush=true:表示所有消息都会被立即输出,设为false则不输出,默认值是true。
      Append=false:true表示消息增加到指定文件中,false则将消息覆盖指定的文件内容,默认值是true。
      File=D:/logs/logging.log4j:指定当前消息输出到logging.log4j文件中。
      DatePattern=’.‘yyyy-MM:每月滚动一次日志文件,即每月产生一个新的日志文件。当前月的日志文件名为logging.log4j,前一个月的日志
      文件名logging.log4j.yyyy-MM。
      另外,也可以指定按周、天、时、分等来滚动日志文件,对应的格式如下:
      1)’.‘yyyy-MM:每月
      2)’.‘yyyy-ww:每周
      3)’.‘yyyy-MM-dd:每天
      4)’.‘yyyy-MM-dd-a:每天两次
      5)’.‘yyyy-MM-dd-HH:每小时
      6)’.’yyyy-MM-dd-HH-mm:每分钟
    • RollingFileAppender选项:
      Threshold=WARN:指定日志信息的最低输出级别,默认为DEBUG。
      ImmediateFlush=true:表示所有消息都会被立即输出,设为false则不输出,默认值是true。
      Append=false:true表示消息增加到指定文件中,false则将消息覆盖指定的文件内容,默认值是true。
      File=D:/logs/logging.log4j:指定消息输出到logging.log4j文件中。
      MaxFileSize=100KB:后缀可以是KB, MB 或者GB。在日志文件到达该大小时,将会自动滚动,即将原来的内容移到logging.log4j.1文件中。
      MaxBackupIndex=2:指定可以产生的滚动文件的最大数,例如,设为2则可以产生logging.log4j.1,logging.log4j.2两个滚动文件
      和一个logging.log4j文件。
  2. log4j.appender.FILE.Append=true
    是否追加:是

  3. log4j.appender.FILE.File=…/logs/log4jtest.log
    日志文件路径
  4. log4j.appender.FILE.MaxFileSize=10MB
    设置文件大小超过10MB以后自动更名,将原来的日志移动到新的新的文件中,打包备份。
  5. log4j.appender.FILE.MaxBackupIndex=50
    设置可以产生的滚动文件的最大数量,也就是可以产生的备份文件的最大数量。

发表评论

表情:
评论列表 (有 0 条评论,694人围观)

还没有评论,来说两句吧...

相关阅读

    相关 Log4J日志配置详解

    1. 概述 1.1. 背景       在应用程序中添加日志记录总的来说基于三个目的 :监视代码中变量的变化情况,周期性的记录到文件中供其他应用进行统计分析工作;跟踪代码

    相关 Log4j日志级别

    日志记录器(Logger)是日志处理的核心组件。 log4j具有5种正常级别(Level)。 日志记录器(Logger)的可用级别Level (不包括自定义级别 Level