Log4j

Posted howlet

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Log4j相关的知识,希望对你有一定的参考价值。



日志系统

日志是维护项目的有利工具,代替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

# 配置根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 测试

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 打印

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



参考Log4J日志整合及配置详解





以上是关于Log4j的主要内容,如果未能解决你的问题,请参考以下文章

log4j怎样控制只输出自己写的代码的日志,不输出框架中的日志

Log4j反序列化远程代码执行漏洞(CVE-2019-17571)

由log4j远程执行漏洞说起

混合 log4j 1.x 和 log4j 2

Java 标准日志工具 Log4j 的使用(附源代码)

log4jspringboot项目启动 ,使用的druid数据源,log4j报错 log4j:WARN Please initialize the log4j system properly.(代码片