Log4j使用笔记
在工作过程中,常常需要查看后台日志,为了更好的记录日志,我们使用Log4j来记录日志。
一、maven依赖的配置
在maven中央库库里找到log4j的java包,添加到依赖即可。
<dependency>
<groupId>log4j</groupId>
<artifactId>log4j</artifactId>
<version>1.2.17</version>
</dependency>
5
1
<dependency>
2
<groupId>log4j</groupId>
3
<artifactId>log4j</artifactId>
4
<version>1.2.17</version>
5
</dependency>
二、配置properties文件
log4j的使用只需要在src下面放一个log4j.properties的文件,然后在该properties文件中进行配置即可。
(1)配置全局根日志对象
log4j.rootLogger = info,console,file
格式:log4j.rootLogger = [level日志级别] , 输出端1 , 输出端2, …
(2)配置指定包下的日志
log4j.logger.org.springframework =debug
格式: log4j.logger.包名 = 日志级别
(3)配置日志的输出端
控制台输出:
log4j.appender.console = org.apache.log4j.ConsoleAppender (输出端)log4j.appender.console.Threshold=info (日志级别)log4j.appender.console.Target=System.out (目标)log4j.appender.console.layout = org.apache.log4j.PatternLayout (日志格式器)log4j.appender.console.layout.ConversionPattern =%p: %m%n [%d] [%c] [%r] [%t]%n (转换表达式)
文件输出:
log4j.appender.file = org.apache.log4j.DailyRollingFileAppender (每天产生一个文件)log4j.appender.file.DatePattern='_'yyyy-MM-dd'.log' (前一天日志文件命名格式)log4j.appender.file.File = F:/log/oa.log (生成的文件)log4j.appender.file.layout = org.apache.log4j.PatternLayoutlog4j.appender.file.layout.ConversionPattern =%p: %m%n [%d] [%c] [%r] [%t]%n
转换表达式详解:
%p 输出优先级,即DEBUG,INFO,WARN,ERROR%m 输出代码中指定的消息%n 输出一个回车换行符,Windows平台为“/r/n”,Unix平台为“/n”%d 输出日志时间点的日期或时间,默认格式为ISO8601,也可以在其后指定格式,比如:%d{yyy MMM dd HH:mm:ss},输出类似:2002年10月18日 22 : 10 : 28%c 输出所属的类目,通常就是所在类的全名%r 输出自应用启动到输出该log信息耗费的毫秒数%t 输出产生该日志事件的线程名(4)完整的配置文件如下:
## LOG4J 日志配置 ##
##01 配置全局日志
log4j.rootLogger = info,console,file
##02 配置指定包下的日志(局部),其他包的日志级别按全局的处理。(不过最终会输出的级别还和下面输出方式配置的级别有关系),
# Hibernate5 logger(虽然这里配置的是debug级,如果控制台配置的是info级别的话,debug级的日志也是不会输出的)
log4j.logger.org.hibernate=debug
log4j.logger.org.hibernate.hql=debug
##03 配置输出方式 ##
# 输出到控制台
log4j.appender.console = org.apache.log4j.ConsoleAppender
log4j.appender.console.Threshold=info
log4j.appender.console.Target=System.out
log4j.appender.console.layout = org.apache.log4j.PatternLayout
log4j.appender.console.layout.ConversionPattern =%p: %m%n [%d] [%c] [%r] [%t]%n
# 输出到文件
log4j.appender.file = org.apache.log4j.DailyRollingFileAppender
log4j.appender.file.Threshold=info
# 设置DatePattern,当天日志保存到tax.log文件,前一天的日志文件名将被修改为tax.log + _yyyy-MM-dd.log
log4j.appender.file.DatePattern='_'yyyy-MM-dd'.log'
log4j.appender.file.File = D:/log/tax.log
log4j.appender.file.layout = org.apache.log4j.PatternLayout
log4j.appender.file.layout.ConversionPattern =%p: %m%n [%d] [%c] [%r] [%t]%n
x
1
## LOG4J 日志配置 ##
2
##01 配置全局日志
3
log4j.rootLogger = info,console,file
4
5
##02 配置指定包下的日志(局部),其他包的日志级别按全局的处理。(不过最终会输出的级别还和下面输出方式配置的级别有关系),
6
# Hibernate5 logger(虽然这里配置的是debug级,如果控制台配置的是info级别的话,debug级的日志也是不会输出的)
7
log4j.logger.org.hibernate=debug
8
log4j.logger.org.hibernate.hql=debug
9
10
##03 配置输出方式 ##
11
# 输出到控制台
12
log4j.appender.console = org.apache.log4j.ConsoleAppender
13
log4j.appender.console.Threshold=info
14
log4j.appender.console.Target=System.out
15
log4j.appender.console.layout = org.apache.log4j.PatternLayout
16
log4j.appender.console.layout.ConversionPattern =%p: %m%n [%d] [%c] [%r] [%t]%n
17
18
# 输出到文件
19
log4j.appender.file = org.apache.log4j.DailyRollingFileAppender
20
log4j.appender.file.Threshold=info
21
# 设置DatePattern,当天日志保存到tax.log文件,前一天的日志文件名将被修改为tax.log + _yyyy-MM-dd.log
22
log4j.appender.file.DatePattern='_'yyyy-MM-dd'.log'
23
log4j.appender.file.File = D:/log/tax.log
24
log4j.appender.file.layout = org.apache.log4j.PatternLayout
25
log4j.appender.file.layout.ConversionPattern =%p: %m%n [%d] [%c] [%r] [%t]%n
三、配置文件的解释
四、在java代码中使用日志
public static void main(String[] args) {
Logger logger = Logger.getLogger(TestSpring.class);
logger.debug("这是debug");
logger.info("这是Info");
logger.error("这是error");
}
1
public static void main(String[] args) {
2
Logger logger = Logger.getLogger(TestSpring.class);
3
logger.debug("这是debug");
4
logger.info("这是Info");
5
logger.error("这是error");
6
}
作者:zeng1994
出处:http://www.cnblogs.com/zeng1994/
本文版权归作者和博客园共有,欢迎转载!但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文链接!