Log4j & Log4j2

前言

        今天抽时间来把这个日志框架学学,毕竟经常用,虽然不用自己写,但是书到用时方恨少,技多不压身。而且最近我的 GUI 软件中有一个关于日志问题的希望学完能够感觉解决掉。

Log4j & Log4j2

        Log4j2 是 Log4j 的升级版,2015年5月,Apache 宣布停止 log4j 的更新,最终的版本定格在了 1.2.17。

1、Log4j

        Log4j 有三大组件:Loggers(记录器)、Appenders(输出源)和 Layouts(布局)。可以简单理解为

  • Loggers:日志的类型,比如 DEBUG(调试信息)、INFO、WARN、ERROR、FATAL
  • Appenders:日志输出到哪里,比如控制台,甚至可以是 GUI 组件,比如 JavaFX、Swing 的 TextArea ,这也是我重点希望了解的
  • 和 Layouts:日志以怎样的形式输出,比如 ${yyyy-MM-dd HH:mm:ss} 

1.1、Loggers

        在设置日志输出的时候,会设置一个日志的输出级别,只有大于等于这个级别的日志才会输出。

        DEBUG < INFO < WARN < ERROR < FATAL

1.2、Appenders

        日志的输出源,可以是控制台(Console),可以是文件(File),或者是我们 Java Swing 和 JavaFX 的 TextArea 这种 GUI 控件中。        

        可以根据文件的大小产生新的文件,可以以流的形式发送到其它地方等。

常用的类:

  • org.apache.log4j.ConsoleAppender(控制台)
  • org.apache.log4j.FileAppender(文件)
  • org.apache.log4j.DailyRollingFileAppender(每天产生一个新的文件,比如 hive.log)
  • org.apache.log4j.RollingFileAppender(文件大小达到指定大小就产生一个新的文件)
  • org.apache.log4j.WriterAppender(将日志信息以流格式发送到任意指定的地方)

        基本上可以满足我们日常的需求,如果我们的需求比较特殊,比如把日志输出到 JavaFX 的 TextArea 中,输出到 org.fxmisc.richtext 的 CodeArea 中,那么我们就可以自定义一个 Appender 类实现 Appender 接口。Appender 接口定义了一系列记录日志的方法,我们按照自己的需求实现这些方法即可。

1.3、Layouts

        用户可以根据自己的喜好格式化自己的日志输出,Layouts 提供了四种日志的输出样式,比如根据 HTML 样式、自由指定样式、包含日志级别与信息的样式和包含日志时间、线程、类别等信息的样式。

常用的类如下:

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

1.4、Log4j 的使用

        log4j 的使用依赖配置文件。log4j 支持两种配置文件的形式,一种是 XML 格式、一种是 .properties 文件。

1.4.1、导包

    log4j
    log4j
    1.2.17
1.4.2、创建配置文件

日志配置文件:log4j.properties 或者 logback.xml。

普通 Java 项目放到 src 同级目录下,maven 项目下放到 src/main/resources/ 目录下

剩下的明天写。

2、Log4j2

总结

你可能感兴趣的:(大数据开发工具,log4j,java,开发语言)