目录
- Log4j是什么
- 组件
- Loggers(日志记录器)
- Appenders(输出控制器)
- Layouts(日志格式化)
- 日志输出格式
- 利用例子解读
- 日志级别
- 如何利用配置文件
- 将日志输出到文件(FileAppender)
- 将日志输出到文件(RollingFileAppender)
- 将日志输出到文件(DailyRollingFileAppender)
- 将日志输出到数据库中
- 自定义logger
Log4j是什么
组件
Loggers(日志记录器)
Appenders(输出控制器)
Layouts(日志格式化)
日志输出格式
利用例子解读
1 创建maven项目,导入log4j依赖
代码语言:javascript复制 <dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.12</version>
</dependency>
<dependency>
<groupId>log4j</groupId>
<artifactId>log4j</artifactId>
<version>1.2.17</version>
</dependency>
</dependencies>
2 写代码,入门
代码语言:javascript复制import org.apache.log4j.BasicConfigurator;
import org.apache.log4j.Logger;
import org.junit.Test;
public class Log4jTest {
@Test
public void test(){
// 加载初始化配置
BasicConfigurator.configure();
// 创建日志记录器对象,不是直接new,因为这个类受保护,所以只能使用静态方法进行创建对象
Logger logger = Logger.getLogger(Log4jTest.class);
// 日志记录输出
logger.info("dddddd");
}
}
log4j有默认的配置,
代码语言:javascript复制 BasicConfigurator.configure();
这个是加载默认的配置,不写这个会报错,我们看这个源码里面是什么
这个配置里面是默认的控制台输出,输出格式也有默认的
日志级别
如何利用配置文件
源码里面,这个文件可以配置哪些?
也就是项目一启动,就会加载log4j.properties这个文件,就会加载里面的这些属性。
CONSOLE 这个是自己定义的,你也可以改名字
代码语言:javascript复制log4j.rootCategory=info
# 表示以控制台方式输出
log4j.appender.CONSOLE=org.apache.log4j.ConsoleAppender
# 表示输出的格式
log4j.appender.CONSOLE.layout=org.apache.log4j.PatternLayout
log4j.appender.CONSOLE.layout.ConversionPattern=- %c-%d-%m%n
代码语言:javascript复制log4j.rootCategory=info,CONSOLE,LOGFILE
log4j.appender.CONSOLE=org.apache.log4j.ConsoleAppender
log4j.appender.CONSOLE.layout=org.apache.log4j.PatternLayout
log4j.appender.CONSOLE.layout.ConversionPattern=- %c-%d-%m%n
log4j.appender.LOGFILE=org.apache.log4j.FileAppender
log4j.appender.LOGFILE.File=D:/axis.log
log4j.appender.LOGFILE.Append=true
PatternLayout 这个是自定义的
log4j.appender.LOGFILE.layout=org.apache.log4j.PatternLayout
log4j.appender.LOGFILE.layout.ConversionPattern=- %c-%d-%m%n
将日志输出到文件(FileAppender)
我们再配置文件里面写 关于输出到文件的配置:
代码语言:javascript复制log4j.appender.file=org.apache.log4j.FileAppender
log4j.appender.file.layout=org.apache.log4j.PatternLayout
log4j.appender.file.layout.ConversionPattern=- %c-%d-%m%n
log4j.appender.file.file = D://test//log4j.log
log4j.appender.file.encoding = UTF-8
将日志输出到文件(RollingFileAppender)
按照文件大小
代码语言:javascript复制log4j.appender.rollingFile=org.apache.log4j.RollingFileAppender
log4j.appender.rollingFile.layout=org.apache.log4j.PatternLayout
log4j.appender.rollingFile.layout.ConversionPattern=- %c-%d-%m%n
log4j.appender.rollingFile.file = D://log4j.log
log4j.appender.rollingFile.maxFileSize = 1MB
log4j.appender.rollingFile.maxBackupIndex = 5
将日志输出到文件(DailyRollingFileAppender)
按时间
代码语言:javascript复制log4j.appender.dailyRollingFile=org.apache.log4j.DailyRollingFileAppender
log4j.appender.dailyRollingFile.layout=org.apache.log4j.PatternLayout
log4j.appender.dailyRollingFile.layout.ConversionPattern=- %c-%d-%m%n
log4j.appender.dailyRollingFile.file = D://log4j.log
log4j.appender.dailyRollingFile.datePattern = '.'yyyy-MM-dd HH-mm-ss
将日志输出到数据库中
首先在数据库中创建日志数据表
导入数据库依赖
代码语言:javascript复制#保存到数据库
log4j.appender.logDb=org.apache.log4j.jdbc.JDBCAppender
log4j.appender.logDb.layout=org.apache.log4j.PatternLayout
log4j.appender.logDb.layout.ConversionPattern=- %c-%d-%m%n
log4j.appender.logDb.Driver = com.mysql.jdbc.Driver
log4j.appender.logDb.URL = com.mysql.jdbc.Driver
log4j.appender.logDb.User = root
log4j.appender.logDb.Password = 123456
log4j.appender.logDb.Sql = insert into tbl_log(id,name,createtime,level,filename) values()
配置一下就可以