log4j设置,以及中文乱码,通过过滤器输出指定级别的日志,或者指定级别范围的日志
配置文件为默认名字log4j.properties时,放在某个模块下的resources下即可,即使有多个模块的情况下,任意一个模块的resources下有这个默认名字的文件log4j.properties即可。否则需要配置指定。
比如放在WEB-INF目录下:在web.xml里增加配置,注意该 Log4jConfigListener需要放在spring的Listener之前。这中设置方式可以不用使用默认名字
<context-param>
<param-name>log4jConfigLocation</param-name>
<param-value>WEB-INF/log4j-test.properties</param-value>
</context-param>
<context-param>
<param-name>log4jRefreshInterval</param-name>
<param-value>60000</param-value>
</context-param>
<listener>
<listener-class>org.springframework.web.util.Log4jConfigListener</listener-class>
</listener>
log存入文件时,文件路径必须是绝对路径。
### 设置###
#log4j.rootLogger = debug,stdout,D,E
log4j.rootLogger = FILE,D,E ### 输出信息到控制抬 ###
#log4j.appender.stdout = org.apache.log4j.ConsoleAppender
#log4j.appender.stdout.Target = System.out
#log4j.appender.stdout.layout = org.apache.log4j.PatternLayout
#log4j.appender.stdout.layout.ConversionPattern = [%-5p] %d{yyyy-MM-dd HH:mm:ss,SSS} method:%l%n%m%n ### 输出DEBUG 级别以上的日志到=logs/log.log ###
log4j.appender.D = org.apache.log4j.DailyRollingFileAppender
log4j.appender.D.File = /home/admin/appData/dqc/log/debug.log
log4j.appender.D.Append = true
# 解决中文乱码
log4j.appender.D.Encoding=UTF-8
log4j.appender.D.Threshold = DEBUG
log4j.appender.D.layout = org.apache.log4j.PatternLayout
log4j.appender.D.layout.ConversionPattern = %-d{yyyy-MM-dd HH:mm:ss} [ %t:%r ] - [ %p ] %m%n ### 输出ERROR 级别以上的日志到=logs/error.log ###
log4j.appender.E = org.apache.log4j.DailyRollingFileAppender
log4j.appender.E.File = /home/admin/appData/dqc/logs/error.log
log4j.appender.E.Append = true
log4j.appender.E.Threshold = ERROR
log4j.appender.E.layout = org.apache.log4j.PatternLayout
log4j.appender.E.layout.ConversionPattern = %-d{yyyy-MM-dd HH:mm:ss} [ %t:%r ] - [ %p ] %m%n
在实际的项目开发中,很可能遇到所引用的包用Log4j来记录日志,比如Hibernate。那么在这里你可以很容易的控制这个包如何记录日志。比如在上面的配置文件中加一行:
log4j.logger.org.hibernate=fatal
那么所有org.hibernate包下面的类就只会显示很少的信息,因为fatal的级别最高啊。
输出指定包的方法直接log4j.logger.包名。你可以通过log4j.rootLogger=OFF来屏蔽其他输出。以下配置屏蔽SSH框架的日志输出:
- log4j.logger.org.springframework=OFF
- log4j.logger.org.apache.struts2=OFF
- log4j.logger.com.opensymphony.xwork2=OFF
- log4j.logger.com.ibatis=OFF
- log4j.logger.org.hibernate=OFF
通过过滤器输出指定级别的日志,或者指定级别范围的日志:http://wendal.net/219.html
#配置Filter
#定义id为F1的拦截器,只接受INFO到ERROR
log4j.appender.File2.filter.F1=org.apache.log4j.varia.LevelRangeFilter
log4j.appender.File2.filter.F1.LevelMin=INFO
log4j.appender.File2.filter.F1.LevelMax=ERROR
#定义id为F2的拦截器,不接受WARN
log4j.appender.File2.filter.F2=org.apache.log4j.varia.LevelMatchFilter
log4j.appender.File2.filter.F2.levelToMatch=WARN
log4j.appender.File2.filter.F2.acceptOnMatch=false
#可以继续定义你需要的拦截器F3/F4.....
参考:
https://my.oschina.net/dodojava/blog/29881
https://blog.csdn.net/tanglinfeng/article/details/3874314
http://wiki.jikexueyuan.com/project/log4j/configuration.html
https://www.jianshu.com/p/c6c543e4975e
http://wendal.net/219.html
log4j设置,以及中文乱码,通过过滤器输出指定级别的日志,或者指定级别范围的日志的更多相关文章
- SSH项目web.xml文件的常用配置【struts2的过滤器、spring监听器、解决Hibernate延迟加载问题的过滤器、解决中文乱码的过滤器】
配置web.xml(struts2的过滤器.spring监听器.解决Hibernate延迟加载问题的过滤器.解决中文乱码的过滤器) <!-- 解决中文乱码问题 --> <filter ...
- IDEA 设置(中文乱码、svn、热部署、ideolog 、Jrebel )
目录 console中文乱码 idea 多个工程分别设置svn idea svn忽略版本控制 idea svn客户端 ideolog 插件配置 idea 热部署 Jrebel 插件激活和使用 # I ...
- Struts2中文乱码问题 过滤器源码分析
整理自网上: 前几天在论坛上看到一篇帖子,是关于Struts2.0中文乱码的,楼主采用的是spring的字符编码过滤器 (CharacterEncodingFilter)统一编码为GBK,前台提交表单 ...
- 学习笔记_第一个strut程序_之中文乱码,过滤器解决方案及过程总结
1. 第一次碰到加过滤器的过程,就是在学习struct1的时候,中文乱码 几个需要注意的关键字 2.什么叫package 所谓package就是打包的意思,就是说以下程序都是处于这个包内,所以一开始 ...
- serv-U 7以上版本pasv端口的设置及中文乱码问题
利用serv-u架设ftp服务器已经是再常见不过了事情了,近日一朋友为图新鲜,弄了个7.4版本的新玩意儿,结果架设上去后,仅开了21端口,用LeapFtp在port模式下连接没问题,但是另一常见的cu ...
- 阶段3 3.SpringMVC·_02.参数绑定及自定义类型转换_3 配置解决中文乱码的过滤器
输入中文 中文后台接收到 全部乱码 springMvc提供了过滤器 配置过滤器 characterEncodingFilter是首字母小写当做起的名称.当然这里也可以任意起名字.为了对应所以修改类名首 ...
- springmvc:配置解决中文乱码的过滤器
在web.xml中配置以下内容: <!--配置解决中文乱码过滤器--> <filter> <filter-name>characterEncodingFilter& ...
- PL/SQL Developer编码格式设置及中文乱码解决方案
1.PL/SQL Developer中文字段显示乱码 原因:因为数据库的编号格式和pl /sql developer的编码格式不统一造成的. 2.PL/SQL Developer编码格式设置详细的解决 ...
- 永久设置mysql中文乱码问题
1.进入mysql的命令窗口 输入 show variables like '%char%'; 查看当前编码是否为UTF-8 2.在上述命令的结果中我们可以看到Wamp的安装目录,找到这一目录,在里面 ...
随机推荐
- CDN网站加速技术
什么是CDN? CDN(Content Delivery Network 内容分发网络)技术通过在各个地区部署缓存节点加速用户对静态资源的获取速度,提升用户体验,降低运营成本.CDN公司有网宿(Chi ...
- 调用微信JS-SDK接口上传图片
最近要在微信上做个问卷调查,有个上传图片功能,折腾找了半天资料,都不好弄,最终打算调用微信提供的上传图片接口,实现上传图片功能!此功能最大的好处是可以在微信服务器上暂存图片,减少本地服务器图片的缓存, ...
- IE8下面的line-height的bug
当line-height小于正常值时,超出的部分将被剪裁掉
- html添加新元素兼容和访问
<!DOCTYPE html> <html> <head> <title>Creating an HTML Element</title> ...
- MapReduce案例一:天气温度
1.需求 2.思路 3.代码实现 3.1MyWeather 类代码: 这个类主要是用来定义hadoop的配置,在执行计算程序时所需加载的一些类. package com.hadoop.mr.weath ...
- redis之(十五)redis的集群中的哨兵角色
一:redis集群的哨兵的目的是什么?. (1)监控主redis和从redis数据库是否正常运行 (2)主redis出现故障,自动将其中一台从redis升级为主redis.将原先的主redis转变成从 ...
- 数据结构与算法之--高级排序:shell排序和快速排序
高级排序比简单排序要快的多,简单排序的时间复杂度是O(N^2),希尔(shell)排序大约是O(N*(logN)^2),而快速排序是O(N*logN). 说明:下面以int数组的从小到大排序为例. 希 ...
- window下线程同步之(Critical Sections(关键代码段、关键区域、临界区域)
关键区域(CriticalSection) 临界区是为了确保同一个代码片段在同一时间只能被一个线程访问,与原子锁不同的是临界区是多条指令的锁定,而原子锁仅仅对单条操作指令有效;临界区和原子锁只能控制同 ...
- Oracle 数据库分页查询的三种方法
一.Oracle 数据库分页查询的三种方法 1.简介 不能对 rownum 使用 >(大于或等于 1 的数值).>=(大于 1 的数值).=(不等于 1 的数值),否则无结果.所以直接用 ...
- apache 把404页面的url转发给php脚本处理
# .htaccess1 RewriteCond %{REQUEST_FILENAME} !-f 2 RewriteRule ^(.*)$ map.php?host=%{HTTP_HOST}& ...