log4j.properties 文件:

log4j.logger.net.sf.hibernate.cache=debug

log4j.rootLogger = error,portal_log,shop_log

log4j.appender.ROLLING_FILE=org.apache.log4j.DailyRollingFileAppender
log4j.appender.ROLLING_FILE.File=/logs/PT.log
log4j.appender.ROLLING_FILE.DatePattern='.'yyyy-MM-dd'.log'
#log4j.appender.ROLLING_FILE.Append=true
#log4j.appender.ROLLING_FILE.MaxFileSize=50MB
log4j.appender.ROLLING_FILE.layout=org.apache.log4j.PatternLayout
log4j.appender.ROLLING_FILE.layout.ConversionPattern=[framework] %d - %c -%-4r [%t] %-5p %c %x - %m%n

log4j.logger.portal_log=INFO, portal_log
log4j.appender.portal_log=com.aisino.global.context.common.logs.MyAppender
log4j.appender.portal_log.Append=true
log4j.appender.portal_log.DatePattern='.'yyyy-MM-dd'.log'
log4j.appender.portal_log.File=/logs/portal_log.log
log4j.appender.portal_log.Threshold=INFO
log4j.appender.portal_log.layout=org.apache.log4j.PatternLayout
log4j.appender.portal_log.layout.ConversionPattern=%m%n
log4j.additivity.portal_log=false

log4j.logger.shop_log=INFO, shop_log
log4j.appender.shop_log=com.aisino.global.context.common.logs.MyAppender
log4j.appender.shop_log.Append=true
log4j.appender.shop_log.DatePattern='.'yyyy-MM-dd'.log'
log4j.appender.shop_log.File=/logs/shop_log.log
log4j.appender.shop_log.Threshold=INFO
log4j.appender.shop_log.layout=org.apache.log4j.PatternLayout
log4j.appender.shop_log.layout.ConversionPattern=%m%n
log4j.additivity.shop_log=false

配置中关键的配置说明是这一句:
log4j.appender.debug.Threshold = INFO 
而它的作用是输出INFO级别以上的内容到日志文件中,所以以上pt.log,shop_log.log,portal_log .log文件中都会包含了ERROR级别的文件。

这就比较烦,得到了我所不要想要的日志信息!!!!!

解决办法是:定义自己的Appender类,继承DailyRollingFileAppender,改写针对Threshold 的设置说明(重写针对级别的比较方法)

源代码:

  1. public boolean isAsSevereAsThreshold(Priority priority)  {
  2. return threshold == null || priority.isGreaterOrEqual(threshold);
  3. }

重写 isAsSevereAsThreshold(Priority priority)方法:

  1. public class MyAppender extends DailyRollingFileAppender {
  2. @Override
  3. public boolean isAsSevereAsThreshold(Priority priority) {
  4. //只判断是否相等,而不判断优先级
  5. return this.getThreshold().equals(priority);
  6. }
  7. }

这样,进行唯一判断,只有当Threshold与priority一致时,才进行输出,就实现了真正Log4j按照级别输出日志文件。

备份,仅供参考!!!

Log4j按级别输出到不同文件的更多相关文章

  1. Log4j按级别输出日志到不同文件配置分析 (转:projava)

    关于LOG4J 按照级别输出日志,并按照级别输出到不同文件中的说法有很多, 网上贴的最多的log4j.properties的设置是这样的 log4j.rootLogger=info,stdout,in ...

  2. Log4j按级别输出日志到不同文件配置

    1.自定义LogFileAppender类,继承DailyRollingFileAppender,实现Log4j按级别输出日志到不同文件. package com.liying.mango.commo ...

  3. Log4j按级别输出日志到不同文件配置分析

    关于LOG4J 按照级别输出日志,并按照级别输出到不同文件中的说法有很多, 网上贴的最多的log4j.properties的设置是这样的 log4j.rootLogger=info,stdout,in ...

  4. log4j2按日志级别输出到指定文件

    在项目中,可能会产生非常多的日志记录,为了方便日志分析,一般可以将日志按级别输出到指定文件,本次就先说说log4j2的实现吧: 1.先加入log4j2依赖包 2.写一个java类进行测试,类文件中仅仅 ...

  5. log4j按级别输出日志文件

    log4j.properties: BASE_DIR= /home/admin/preprocess-tmc-city/logs log4j.rootLogger=debug,stdout,debug ...

  6. log4net按照不同的【LEVEL】级别输出到不同文件

    Log4net按照不同级别写入多个日志文件 2012-02-08 15:06 by Fred-Xu, ... 阅读, ... 评论, 收藏, 编辑 在一个Web应用项目中,我使用了Fluent NHi ...

  7. log4net按照不同的级别输出到不同文件

      配置目标: 1)一个文件记录全部级别的日志: 2)记录某一级别的日志(使用LevelRangeFilter进行级别的过滤).   Eg: <log4net>   <appende ...

  8. log4j配置文件及java调用 每个级别输出到不同的文件

    #配置根Logger log4j.rootLogger = DEBUG , RollingFile,CONSOLE #文件大小达到一定尺寸的时候创建一个新的文件 log4j.appender.Roll ...

  9. log4j.xml配置,包含自定义log4j日志级别及输出日志到不同文件

      一.配置 <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE log4j:configura ...

随机推荐

  1. Web Config配置备忘

    数据压缩 <httpCompression>节点用于配置静态压缩和动态压缩,<urlCompression>则用于开关 http压缩 <urlCompression do ...

  2. 最新Mac OS X 10.12.1 安装cocoapods及使用详解

    cocoapods官网:https://cocoapods.org 一.什么是CocoaPods 每种语言发展到一个阶段,就会出现相应的依赖管理工具,例如 Java 语言的 Maven,nodejs ...

  3. struts2download

    public class TestAction extends ActionSupport{        public String fileLoad() throws IOException{   ...

  4. VC++ GetModuleFileName()获取路径字符串中带波浪线~

    GetModuleFileName()获取的字符串中带波浪线,不是完整的路径显示. 原因:获取的是短路径,进行了缩写 解决:还原长路径 TCHAR }; GetLongPathName( strTem ...

  5. sublime text 2 快捷键

    快捷键 功能 ctrl+shift+n 打开新Sublime ctrl+shift+w 关闭Sublime,关闭所有打开文件 ctrl+shift+t 重新打开最近关闭文件 ctrl+n 新建文件 c ...

  6. JSP复习整理(一)表单

    好久没更了,一周完成了SRDP,一周完成了课程设计,这一周就要好好回顾回顾Java Web的学习轨迹了. 用的eclipse Mars 一.表单 start.jsp <%@ page langu ...

  7. 忘记mysq rootl密码

    忘记mysq rootl密码 1       mysql忘记root密码 1.1     查看mysql的进程 [root@mysql data]# cat /data/mysql.localdoma ...

  8. Counter Mode ( CTR )

    Encryption Decryption

  9. CoreData __ 基本原理

    操作过程 Context想要获取值,先要告诉连接器,我要什么东西 链接器再告诉store, 你给我什么东西, store去找 找到之后返回给链接器,链接器再返回给Context          Co ...

  10. ubantu php7.0版本降级到php5.6

    http://askubuntu.com/questions/756879/cant-install-php5-on-ubuntu-16-04