log4j配置说明

目录:

1、 引入jar包使用

2、 使用

3、 配置文件

4、 配置

5、 说明

说明:2015年9月,Apache软件基金业宣布,Log4j不在维护,建议所有相关项目升级到Log4j2。

1.引入jar包使用


    log4j
    log4j
    1.2.17

log4j配置说明_第1张图片

 根据maven的提示,最新的引入方式:


    org.apache.logging.log4j
    log4j-core
    2.20.0

log4j配置说明_第2张图片

SpringBoot引入:


    org.springframework.boot
    spring-boot-starter-log4j
    1.3.8.RELEASE

 log4j配置说明_第3张图片

 需要排除boot自带的logging,改为:


	org.springframework.boot
	spring-boot-starter-web
	
		
			org.springframework.boot
			spring-boot-starter-logging
		
	

2.使用

//使用log4j
import org.apache.log4j.Logger;
private static final Logger logger = Logger.getLogger(XX.class);
logger.error(e.getMessage());

自动加载配置文件:log4j启动时,默认会寻找source目录下的log4j.xml,要是找不到会继续找log4j.properties文件。

手动加载配置文件:代码里面读取配置文件存放的目录。

3.配置文件格式

log4j常用的配置文件有两种:

log4j.xml

log4j.properties​​​

这里介绍的是基于log4j.properties。log4j.xml的优先级高于log4j.properties,两者都有的情况下使用log4j.xml

log4j.properties配置简单,不支持复杂过滤器。

log4j.xml支持复杂过滤器和Log4j的新特性。

4.配置内容

Log4j由三个重要的组成构成:日志记录器(Loggers),输出端(Appenders)和日志格式化器(Layout)。

日志记录器(Loggers):控制要输出哪些日志记录语句,对日志信息进行级别限制。

输出端(Appenders):指定了日志将打印到控制台还是文件中。

日志格式化器(Layout):控制日志信息的显示格式。

Log4j建议只使用四个级别,优先级从高到低分别是ERROR、WARN、INFO、DEBUG。

log4j配置文件中的key的单词首字母都使用小写

##配置根Logger,建议只使用四个级别,优先级从高到低分别是ERROR、WARN、INFO、DEBUG。
log4j.rootLogger=Error,Console,DailyRollingFile
##console 控制台输出
log4j.appender.Console=org.apache.log4j.ConsoleAppender
##输出的方式,非必填,可选System.out或System.err
log4j.appender.Console.Target=System.out
log4j.appender.Console.ImmediateFlush=true
##输出日志的级别 不填则认为是ALL级别
log4j.appender.Console.Threshold=Error
##输出日志的格式(布局)实现类
log4j.appender.Console.layout=org.apache.log4j.PatternLayout
##输出日志的具体格式
log4j.appender.Console.layout.ConversionPattern=%-d{yyyy-MM-dd HH:mm:ss.SSS} -[%-t] %-5p %-4c %x -%m%n
##按天滚动生成日志文件
log4j.appender.LogFile=org.apache.log4j.DailyRollingFileAppender
##输出文件的路径
log4j.appender.LogFile.File=/logs/manager.log
log4j.appender.LogFile.Append=true
log4j.appender.LogFile.ImmediateFlush=true
##输出日志的级别 不填则理解为ALL级别
log4j.appender.LogFile.Threshold=Error
log4j.appender.LogFile.Encoding=UTF-8
##输出日志的格式(布局)实现类
log4j.appender.LogFile.layout=org.apache.log4j.PatternLayout
##输出日志的具体格式
log4j.appender.LogFile.layout.ConversionPattern=%-d{yyyy-MM-dd HH:mm:ss.SSS} -[%-t] %-5p %-4c %x -%m%n

5.说明

Log4J是比较早的,后面有很多新的日志框架出现,推荐Log4j2。建议使用日志门面引入日志组件的方式来实现系统日志的记录,这样可以将系统和日志框架解耦。

SLF4J是日志门面还有JCLslf4j是门面模式的典型应用而Log4J、Log4J2和LogBack是日志实现框架一般用以下几种方式实现:

slf4j + logback

slf4j + log4j

slf4j + jul(Java原生日志框架)

只用slf4j无日志实现

你可能感兴趣的:(Java知识,log4j,java,apache)