目录
是Apache下开源的日志框架
- @Test
- public void testLog4J(){
- Logger logger = Logger.getLogger(Log4jTest.class);
- logger.info("hello log4j");
- }
log4j:WARN No appenders could be found for logger (com.zmt.Log4jTest).
log4j:WARN Please initialize the log4j system properly.
log4j:WARN See Apache log4j 1.2 - Frequently Asked Technical Questions for more info.
它并没有我们想象的一样,直接输出日志,而是输出警告信息。意思为需要一个初始化配置信息。

添加一个BasicConfigurator.configure()即可。
Log4j由Loggers(日志记录器)、Appenders (输出端)和 Layout (日志格式化器)组成。其中 Loggers控制日志的输出级别与日志是否输出;Appenders 指定日志的输出方式(输出到控制台、文件等); Layout 控制日志信息的输出格式。
与JUL(Java日志系统之JUL-CSDN博客)的Logger一样具有父子关系,有一个默认的根Logger对象,父子关系也通过全路径来判断。由如果没有设置配置,则采用根Logger的默认配置。
指定日志输出位置
只有在Appender为PatternLayout时有效
测试如下格式的日志输出
log4j.appender.console.layout.conversionPattern = Thread:%t [%5p] %d{yyyy-MM-dd HH:mm:ss}: %m%n

log4j支持一下几种配置文件格式

LomManager加载配置文件的路径是通过类加载器加载。

加载方法为下图



进行文件配置

- log4j.rootLogger=debug,console,file
-
- log4j.appender.console =org.apache.log4j.ConsoleAppender
- #指定消息格式类型
- log4j.appender.console.layout =org.apache.log4j.PatternLayout
- #指定转化格式内容
- log4j.appender.console.layout.conversionPattern = Thread:%t [%5p] %d{yyyy-MM-dd HH:mm:ss}: %m%n
-
- log4j.appender.file =org.apache.log4j.FileAppender
- log4j.appender.file.layout =org.apache.log4j.PatternLayout
- log4j.appender.file.layout.conversionPattern = Thread:%t [%5p] %d{yyyy-MM-dd HH:mm:ss}: %m%n
- #指定文件路径
- log4j.appender.file.file=/logs/log4j.log
- #指定文件编码格式
- log4j.appender.file.encoding=UTF-8
-
-
- log4j.appender.rollingFile =org.apache.log4j.RollingFileAppender
- log4j.appender.rollingFile.layout =org.apache.log4j.PatternLayout
- log4j.appender.rollingFile.layout.conversionPattern = Thread:%t [%5p] %d{yyyy-MM-dd HH:mm:ss}: %m%n
- #指定文件路径
- log4j.appender.rollingFile.file=/logs/log4j.log
- #指定文件编码格式
- log4j.appender.rollingFile.encoding=UTF-8
- #文件到达1MB便进行拆分
- log4j.appender.rollingFile.maxFileSize=1MB
- #指定拆分数量,如果拆分不够的话,会按照时间久远进行覆盖
- log4j.appender.rollingFile.maxBackupIndex= 10
-
-
- log4j.appender.dailyFile =org.apache.log4j.DailyRollingFileAppender
- log4j.appender.dailyFile.layout =org.apache.log4j.PatternLayout
- log4j.appender.dailyFile.layout.conversionPattern = Thread:%t [%5p] %d{yyyy-MM-dd HH:mm:ss}: %m%n
- #指定文件路径
- log4j.appender.dailyFile.file=/logs/log4j.log
- #指定文件编码格式
- log4j.appender.dailyFile.encoding=UTF-8
- #指定时间拆分规则 默认以天为单位
- log4j.appender.dailyFile.datePattern='.'yyyy-MM-dd