1.基础知识
作用:
记录项目产生的日志:调试日志/运行日志/异常日志
实现方式:
- JDK的logger
- log4j和log4j2
日志级别
日志 级别 作用 fatal 1(最高) 致命 error 2 warn 3 info 4 debug 5 调试 trace 6 堆栈
2. 基础配置
1.添加依赖
pom.xml
1
2
3
4
5<dependency>
<groupId>log4j</groupId>
<artifactId>log4j</artifactId>
<version>1.2.17</version>
</dependency>调价报错依赖
SLF4J: Failed to load class “org.slf4j.impl.StaticLoggerBinder”.
SLF4J: Defaulting to no-operation (NOP) logger implementation
SLF4J: See http://www.slf4j.org/codes.html#StaticLoggerBinder for further details.1
2
3
4
5<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-nop</artifactId>
<version>1.7.2</version>
</dependency>
2.配置文件
log4j.properties
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27DEBUG,Console,File,DailyRollingFile,RollingFile =
#Console
org.apache.log4j.ConsoleAppender =
org.apache.log4j.PatternLayout =
%d [%t] %-5p [%c] - %m%n =
#File
org.apache.log4j.FileAppender =
D://log1.log =
org.apache.log4j.PatternLayout =
%d [%t] %-5p [%c] - %m%n =
false =
#DailyRollingFile
org.apache.log4j.DailyRollingFileAppender =
D://log2.log =
org.apache.log4j.PatternLayout =
%d [%t] %-5p [%c] - %m%n =
#RollingFile
org.apache.log4j.RollingFileAppender =
D://log3.log =
1KB =
3 =
org.apache.log4j.PatternLayout =
%d [%t] %-5p [%c] - %m%n =详解
输出等级
1
2
3#将DEBUG及以上日志使用输出类型输出
#OFF(0)<FIFAL<ERROR<WARN<INFO<DEBUG<ALL(全部)
DEBUG,输出类型1[,输出类型2] =输出格式:
log4j.appender.输出名称.layout=org.apache.log4j.PatternLayout推荐配置
格式名称 作用 注意事项 org.apache.log4j.HTMLLayout 以HTML表格形式布局 org.apache.log4j.PatternLayout 可以灵活地指定布局模式 org.apache.log4j.SimpleLayout 包含日志信息的级别和信息字符串 org.apache.log4j.TTCCLayout 包含日志产生的时间、线程、类别等等信息 自定义配置
log4j.appender.输出名称.layout.ConversionPattern=%d [%t] %-5p [%c] - %m%n推荐配置
配置类型 配置名称 注意事项 %m 输出代码中指定的消息; %M 输出打印该条日志的方法名; %p 输出优先级,即DEBUG,INFO,WARN,ERROR,FATAL; %r 输出自应用启动到输出该log信息耗费的毫秒数; %c 输出所属的类目,通常就是所在类的全名; %t 输出产生该日志事件的线程名; %n 输出一个回车换行符,Windows平台为”rn”,Unix平台为”n”; %d 输出日志时间点的日期或时间,默认格式为ISO8601,也可以在其后指定格式,比如:%d{yyyy-MM-dd HH:mm:ss,SSS},输出类似:2002-10-18 22:10:28,921; %l 输出日志事件的发生位置,及在代码中的行数 输出类型
log4j.appender.输出类型=org.apache.log4j.输出类型Appender
输出类型 作用 注意事项 Console 控制台 File 只产生一个日志文件 DailyRollingFile 每天产生一个日志文件 RollingFile 文件大小超过指定大小时产生新文件 WriterAppender 将日志信息以流格式发送到任意指定的地方 输出名称
输出类型 输出名称 File 默认续写 DailyRollingFile 最后一天的名称与输出名称相同,之前的为 输出名称+日期 RollingFile 当超过配置的制定大小时创建新文件,文件名为 输出名称n 1
D://log.log =
额外配置
1
2
3
4
5
6
7
8#File 当配置false时不续写,直接覆盖
false =
#DailyRollingFile
# RollingFile:当文件大小超过1KB时新建新文件,当文件数超过3个时覆盖之前的文件
1KB =
3 =
3.java配置
新建logger事例
1
Logger logger = Logger.getLogger(当前.class);
格式化logger
1
logger.日志级别名("显示信息");
格式化错误日志
1
logger.日志级别名("显示信息",new 错误);
3.框架配置
1.Spring MVC
web.xml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19<!-- 加载log4j的配置文件log4j.properties -->
<context-param>
<param-name>log4jConfigLocation</param-name>
<param-value>classpath:log4j.properties</param-value>
</context-param>
<!-- 设定刷新日志配置文件的时间间隔,这里设置为10s -->
<context-param>
<param-name>log4jRefreshInterval</param-name>
<param-value>10000</param-value>
</context-param>
<!-- 加载Spring框架中的log4j监听器Log4jConfigListener -->
<listener>
<listener-class>org.springframework.web.util.Log4jConfigListener</listener-class>
</listener>
<!-- 为避免项目间冲突,定义唯一的 webAppRootKey -->
<context-param>
<param-name>webAppRootKey</param-name>
<param-value>scheduleProject</param-value>
</context-param>
2.Spring Boot
直接使用即可
最后更新: 2019年11月06日 21:17