Log4j

2020-03-10 09:17:09 浏览数 (1)


日志系统

日志是维护项目的有利工具,代替System.out.println()来定位BUG

JDK有自带的 JUL(java util logging) 日志系统,并不需要引用别的类库,但这并不满足我们的需求,所以我们用log4j代替,注意的是Apache为了让众多的日志工具有一个相同操作方式,实现了一个通用日志工具包:commons-logging,所要使用log4j就先得有commons-logging支持

日志的三大组件

Logger:日志记录器

Appender:日志输出目的地

Layout:控制输出流的格式

Logger官方建议使用四个级别,由低到高分别是:

级别

解释

ERROR

发生错误事件,但不影响系统继续运行

WARN

警告潜在错误的情形

INFO

打印你感兴趣的或者重要的信息,用于生产环境

DEBUG

主要用于开发过程中打印一些运行信息

布局格式化日志

类别

解释

HTMLLayout

HTML形式

PatternLayout

指定布局模式

SimpleLayout

日志级别和信息字符串

TTCCLayout

日志产生的时间、线程、类别等

附加器输出地方

分类

解释

ConsoleAppender

输出到控制台

FileAppender

输出到文件

DailyRollingFileAppender

输出到每天生成的新文件

RollingFileAppender

文件大小到达指定尺寸的时候产生一个新的文件

JDBCAppender

保存到数据库中

WriterAppender

以流格式发送到任意指定的地方

基本使用

1 导包

  • log4j-1.2.17.jar
  • commons-logging-1.2.jar

2 src下新建log4j.properties

代码语言:javascript复制
# 配置根logger,预定义附加器
log4j.rootLogger = WARN, console, file

# 配置console附加器
log4j.appender.console = org.apache.log4j.ConsoleAppender
log4j.appender.console.layout = org.apache.log4j.PatternLayout
log4j.appender.console.layout.ConversionPattern = %d{yyyy/MM/dd HH:mm:ss} %p [%c -Row:%L] --> %m%n

# 配置file附加器
log4j.appender.file = org.apache.log4j.DailyRollingFileAppender
log4j.appender.file.File = C:\Users\Howl\Desktop\log4j.txt
log4j.appender.file.layout = org.apache.log4j.PatternLayout
log4j.appender.file.layout.ConversionPattern = %d{yyyy/MM/dd HH:mm:ss} %p [%c -Row:%L] --> %m%n
log4j.appender.file.DatePattern ='.'yyyy-MM
log4j.appender.file.Threshold = ERROR

3 测试

代码语言:javascript复制
public static void main(String[] args) {
    
    //获取Logger对象的实例 
    Logger logger = Logger.getLogger(Log4jTest.class);
        
    //日志报错
    logger.debug("这是debug");
    logger.info("这是info");
    logger.warn("这是warn");
    logger.error("这是error");
    logger.fatal("这是fatal");
}

4 打印

代码语言:javascript复制
2019/12/19 12:16:05 WARN [logging.Log4jTest -Row:22] --> 这是warn
2019/12/19 12:16:05 ERROR [logging.Log4jTest -Row:23] --> 这是error
2019/12/19 12:16:05 FATAL [logging.Log4jTest -Row:24] --> 这是fatal

0 人点赞