log4j配置
2016-12-02 16:06
204 查看
1.环境配置
直接导入JAR就可以了,这里使用maven导入<dependency> <groupId>log4j</groupId> <artifactId>log4j</artifactId> <version>1.2.17</version> </dependency>1
2
3
4
5
1
2
3
4
5
2.写配置文件
log4j可以使用xml配置,也可以使用properties文件配置,一半都使用后者,简单明了
1.输出到控制台
控制台一半都是我们调试查看的地方,所以开发阶段直接全部日志都输出到控制台log4j.appender:固定名称,表示这是一个appender配置
stdout:自定义命名,可以通过制定哪些地方使用这个配置
#指定输出是控制台 log4j.appender.stdout=org.apache.log4j.ConsoleAppender #指定输出样式为自定义样式 log4j.appender.stdout.layout=org.apache.log4j.PatternLayout #自定义样式 log4j.appender.stdout.layout.ConversionPattern=%-5p - %m%n1
2
3
4
5
6
1
2
3
4
5
6
启用这个输出
log4j.rootLogger 是全局配置文件,也可以说默认配置,这里配置的是输出DEBUG以上的信息,输出位置到stdout这个appender,也就是到控制台
#一半放在配置文件开头 log4j.rootLogger=DEBUG, stdout1
2
1
2
测试这个配置
public class App { public static void main( String[] args ) { //加载配置文件 PropertyConfigurator.configure("src/log4j.properties"); //获取loger记录器,参数一般指定当前类的class Logger logger = Logger.getLogger(App.class); logger.debug("这是debug"); logger.info("这是info"); logger.error("这是error"); logger.fatal("这是fatal"); } }1
2
3
4
5
6
7
8
9
10
11
12
13
14
1
2
3
4
5
6
7
8
9
10
11
12
13
14
2.输出到文件
输出到文件和控制台差不多,只是多了不少参数,这里使用I命名这个appender,追加到properties配置文件中#表示当前输出位置是文件 log4j.appender.I=org.apache.log4j.FileAppender #指定当前输出路径 log4j.appender.I.File=E:/test/log.log #指定输出日志的最低级别 log4j.appender.I.Threshold=INFO #指定输出样式 log4j.appender.I.layout=org.apache.log4j.PatternLayout #指定输出编码 log4j.appender.I.encoding=UTF-8 #自定义输出样式 log4j.appender.I.layout.ConversionPattern=%d{ABSOLUTE} %5p %c{1}:%L - %m%n1
2
3
4
5
6
7
8
9
10
11
12
1
2
3
4
5
6
7
8
9
10
11
12
启动这个配置
在刚才的基础上,再加上I命名这样就可以启动这个配置了
log4j.rootLogger=DEBUG, stdout,I1
1
测试这个配置
测试代码同上,这个时候是同时输出到控制台和文件
文件中过滤了DEBUG级别的了
控制台正常输出
3.把error级别以上单独输出到一个文件
和之前一样,现在重新定义一个appender给error级别以上的用,命名为E#log error级别的日志放在error.log log4j.appender.E=org.apache.log4j.FileAppender log4j.appender.E.File=E:/test/error.log log4j.appender.E.Threshold=ERROR log4j.appender.E.layout=org.apache.log4j.PatternLayout log4j.appender.E.encoding=UTF-8 log4j.appender.E.layout.ConversionPattern=%d{ABSOLUTE} %5p %c{1}:%L - %m%n1
2
3
4
5
6
7
1
2
3
4
5
6
7
启动这个配置
和之前一样,在最后增加上这个命名E即可
log4j.rootLogger=DEBUG, stdout,I,E1
1
测试这个配置
测试代码同上
成功把Error级别单独输出
4.指定包文件输出
很多情况下使用框架,框架本身就带有日志,而且特别多,这个时候就需要单独指定项目源码部分,也就是自己写的日志输出到指定文件在其他的基础上,修改下配置
log4j.logger+包名:相当于局部配置,这里全局配置为DEBUG输出到控制台,但是com.test下面的INFO级别以上的日志输出到I命名和E命名中
log4j.rootLogger=DEBUG, stdout log4j.logger.com.test=INFO, I,E1
2
1
2
5.每天产生一个新日志文件
只是使用的appender不一样了,每天产生日志使用的是org.apache.log4j.DailyRollingFileAppender这个类来控制#打印INFO级别及以上的日志 #每天生成1个日志文件 log4j.appender.PRODUCT=org.apache.log4j.DailyRollingFileAppender log4j.appender.PRODUCT.Append=true #配置使其产生是每天凌晨 #如果想每小时则 log4j.appender.PRODUCT.DatePattern='.' yyyy-MM-dd -HH log4j.appender.PRODUCT.DatePattern='.' yyyy-MM-dd log4j.appender.PRODUCT.File=irs.log log4j.appender.PRODUCT.Threshold=INFO log4j.appender.PRODUCT.Encoding=UTF-8 #log4j.appender.PRODUCT.MaxFileSize=20MB log4j.appender.PRODUCT.layout=org.apache.log4j.PatternLayout log4j.appender.PRODUCT.layout.ConversionPattern=<%d{yyyy-MM-dd HH\:mm\:ss\:SSS} [%p]>[Galaxy-IRS] %X{module}-%X{random}: %m%n1
2
3
4
5
6
7
8
9
10
11
12
13
1
2
3
4
5
6
7
8
9
10
11
12
13
3.备注
1.在和spring配合使用
配合使用的时候,不需要显示的指定加载log4j.properties位置,默认放在src下,spring会自动加载这个配置的2.输出到webApp目录下
这个就需要和spring配合使用,或者不用spring的话就需要自己写一个servlet,再加载配置文件前执行这个servlet,下面给出spring下指定路径方法
在web.xml下配置,要放在加载spring之前才可以的哈
<!-- ******************* 初始化 "webAppRootKey" **************** --> <context-param> <param-name>webAppRootKey</param-name> <param-value>app.root</param-value> </context-param> <!-- ****************************************************************** --> <!-- ***************** spring 设置 log4j 配置文件 ********************** --> <context-param> <param-name>log4jConfigLocation</param-name> <param-value>classpath:log4j.properties</param-value> </context-param> <listener> <listener-class>org.springframework.web.util.Log4jConfigListener</listener-class> </listener> <!-- ******************************************************************* -->1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
然后在log4j.properties中使用
log4j.appender.file.File=${app.root}/WEB-INF/logs/log.html1
1
这样就实现了,输出到WEB-INF下,前提logs这个文件夹必须存在哈
最后分享自己常用日志格式:
%d{HH:mm:ss} [%t] %c %p - %m%n
相关文章推荐
- Apache Log4j 2.0-rc1 发布
- Shiro学习之路 Hello Shiro(一)
- IPV4基本设置
- MySQL5.6多实例部署
- 虚拟化基础架构Windows 2008篇之9-配置Windows部署服务
- [游戏资讯]《极品飞车16:亡命狂飙》配置需求公布
- 配置文件神器 typesafe conf 用法简介
- 配置文件神器 typesafe conf 用法简介
- 路由器备份配置
- 路由器的基本配置
- 路由器基础配置及传输协议
- 经典配置 Vlan篇
- 备份线路的配置
- 交换机如何配置 新手配置交换机详细教程
- 如何进行系统配置
- 路由器的配置与调试
- DOS下内存的配置
- IIS配置文件隐患
- Windows下Postgresql数据库的下载与配置方法