一、引言
1.1 日志介绍
用于记录系统中发生的各种事件。记录的位置常见的有 :控制台、磁盘文件等
1.2 日志级别
日志级别从低到高:
TRACE、DEBUG、INFO、WARN、ERROR、FATAL
1.3 日志作用
- 通过日志观察、分析项目的运行情况 (项目维护)
- 通过日志分析用户的使用情况 (大数据分析)
- …
二、解决方案
2.1 Log4j+Commons-Logging
2.1.1 导入依赖
项目中添加 Log4j和Commons-Logging的依赖
<!-- https://mvnrepository.com/artifact/log4j/log4j -->
<dependency>
<groupId>log4j</groupId>
<artifactId>log4j</artifactId>
<version>1.2.17</version>
</dependency>
<!-- https://mvnrepository.com/artifact/commons-logging/commons-logging -->
<dependency>
<groupId>commons-logging</groupId>
<artifactId>commons-logging</artifactId>
<version>1.2</version>
</dependency>
2.1.2 基本使用
基本API
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.junit.Test;
public class HelloLog {
// 需要输出日志的类,可以创建一个log属性
Log log = LogFactory.getLog(HelloLog.class);
@Test
public void test1(){
log.trace("hello trace");
log.debug("hello debug");
log.info("hello info");
log.warn("hello warn");
log.error("hello error");
log.fatal("hello fatal");
}
}
2.1.3 配置信息
定义配置文件 log4j.xml
占位符 | 描述 |
---|---|
%p | 输出级别,即DEBUG,INFO,WARN,ERROR,FATAL |
%r | 输出自应用启动到输出该log信息耗费的毫秒数 |
%c | 输出所在类的全名 |
%t | 输出产生该日志事件的线程名 |
%n | 输出一个回车换行符 |
%d | 输出日志时间点的日期或时间,默认格式为ISO8601,也可以在其后指定格式,比如:%d{yyyy-MM-dd HH:mm:ss,SSS},输出类似:2002-10-18 22:10:28,921 |
%l | 输出日志事件的发生位置,包括类名、发生的线程,以及在代码中的行数。举例:Testlo4.main(TestLog4.java:10) |
%m | 日志的信息 |
%M | 显示调用该logger的方法 |
# 配置日志级别以及日志的输出别名。
log4j.rootLogger = warn,console,file
# 控制日志输出到控制台的类
log4j.appender.console=org.apache.log4j.ConsoleAppender
# 日志输出采用哪个类进行布局解析
log4j.appender.console.layout=org.apache.log4j.PatternLayout
# 日志的输出具体布局
log4j.appender.console.layout.ConversionPattern=%5p [%t] - %m%n
# 控制日志输出到文件的类
log4j.appender.file=org.apache.log4j.DailyRollingFileAppender
# 超过日志文件规定的大小,重新生成文件
#log4j.appender.file=org.apache.log4j.RollingFileAppender
# 日志的位置
log4j.appender.file.File=d:/log/fileServer.log
# 日志类容追加
log4j.appender.file.append=true
# 日志的大小
log4j.appender.file.MaxFileSize=3M
# 日志格式化的类
log4j.appender.file.layout=org.apache.log4j.PatternLayout
# 日志采用何种模式格式化
log4j.appender.file.layout.ConversionPattern=[%-5p] [%d{yyyy-MM-dd HH\:mm\:ss,
SSS}] %l%n - %m%n