1.rootLogger不输出

代码如下:

配置文件代码:

log4j.rootLogger=info, R,userLog

log4j.appender.R=org.apache.log4j.RollingFileAppender

log4j.appender.R.File=E:/createHtml.log

log4j.appender.R.MaxFileSize=100MB

log4j.appender.R.MaxBackupIndex=20

log4j.appender.R.layout=org.apache.log4j.PatternLayout

log4j.appender.R.layout.ConversionPattern=%-d{yyyy-MM-dd HH\:mm\:ss} [%p] %c - %m%n

log4j.appender.userLog=org.apache.log4j.ConsoleAppender

log4j.appender.userLog.Target=System.out

log4j.appender.userLog.layout=org.apache.log4j.PatternLayout

log4j.appender.userLog.layout.ConversionPattern=%m%n

类中代码:

private final static Log log = LogFactory.getLog("userInfoLog");

log.debug(“输出日志====”);

错误:设置好的日志,文件中没有输出,控制台也没有输出

原因:level级别问题;配置文件中设置的级别是info;而在类中输出使用的是debug;log4j的level级别为:debugàinfoàwarnàerror;

解决:配置级别高,输出级别低则不会输出,如果反过来就会输出;比如:配置文件改为debug,输出使用log.debug或者log.info或者更高级别都可以。

2.自定义的日志不输出

代码如下:

配置文件代码:

log4j.appender.createExcel=info,excel

log4j.appender.excel=org.apache.log4j.FileAppender

log4j.appender.excel.File=E:/createExcel.log

log4j.appender.excel.Append=true

log4j.appender.excel.Threshold=info

log4j.appender.excel.layout=org.apache.log4j.PatternLayout

log4j.appender.excel.layout.ConversionPattern=%m%n

log4j.additivity.createExcel = false

类中代码:

private final static Log log = LogFactory.getLog("createExcel ");

log.debug(“输出日志====”);

错误:使用自定义的名称createExcel不输出日志

原因:配置文件中的红色代码处有错误,这种错误很容易在配置文件中有很多日志文件的时候,复制上面的出错;

解决:log4j.logger.createExcel=info,excel;Logger:负责供客户端代码调用,执行debug、info等方法。
Appender:负责日志的输出,Log4j已经实现了多种不同目标的输出方式,可以向文件输出日志、向控制台输出日志、向Socket输出日志等。红色部分错误的将logger写成了appender;新添加一个自定义的日志的时候必须要是有log4j.logger类。

扩展:自定义日志的时候还容易出错的地方是:你配置文件中使用自定义名称与类中使用的不一致,这里配置文件中的log4j. appender.createExcel要与类中LogFactory.getLog("createExcel ");一致,否则也会导致不输出日志。

3.
自定义日志使用类名不输出

代码如下:

配置文件代码:

log4j.logger.performanceLogger=INFO,performanceLogger

log4j.appender.performanceLogger=org.apache.log4j.DailyRollingFileAppender             log4j.appender.performanceLogger.File=/application/resinlog/cmslog/common-perf.log

log4j.appender.excel.layout=org.apache.log4j.PatternLayout

log4j.appender.excel.layout.ConversionPattern=%m%n

log4j.additivity.createExcel = false

类中代码:

private final static Log log = LogFactory.getLog (PerformanceMonitorFilter.class);

log.debug(“输出日志====”);

错误:指定的日志文件中没有输出日志,也没有报错

原因:配置文件中使用了自定义名称的方式,但是类中调用日志文件的时候却使用的类名

解决:如果类是个jar包,不容许修改的,那么就把配置文件改了;具体如下:        log4j.logger.com.hudong.keel.web.filter.PerformanceMonitorFilter=INFO,performanceLogger

log4j.appender.performanceLogger=org.apache.log4j.DailyRollingFileAppender

如果类可以改,那也可以不改配置文件直接该类,如下:

private final static Log log = LogFactory.getLog (“performanceLogger”);

扩展:如果你不想在rootLogger指定的文件下输出内容,只想在你知道的自定义文件下输出你的日志,那么你可以把输出开关改为false,默认的是true;如果你不该那么就会在跟日志和你自定义的日志都输出日志;开关如下:

log4j.additivity.createExcel = false

4.如果配置好文件之后再控制台输出一些红色警告,那么证明你配置的log4j文件有错误;检查一下你的配置文件,具体配置文件的使用间博客其他有关log4j使用的文章。

log4j不输出日志错误分析的更多相关文章

  1. 使用log4j无法输出日志

    前段时间在项目的过程中使用log4j来输出日志,但是在一个项目里我明明已经在src/main/resource目录下创建了log4j.properties.具体配置如下: log4j.rootLogg ...

  2. log4j配置输出日志文件

    在测试程序时,有时候运行一次可能需要很久,把日志文件保存下来是很有必要的,本文给出了scala程序输出日志文件的方式,同时使用本人的另一篇博客中介绍的将log4j.properties放到程序jar包 ...

  3. kettle使用log4j管理输出日志

    在使用kettle进行数据分析和清洗时日志非常多而且杂乱,使用原有的日志有时找不到异常的位置,有时日志不够详细,说简单一点就是日志不是我们想要的.因而对kettle日志进行相应的管理就想得尤为重要了. ...

  4. log4j直接输出日志到flume

    log4j.properties配置: log4j.rootLogger=INFOlog4j.category.com.besttone=INFO,flumelog4j.appender.flume ...

  5. Log4j指定输出日志的文件

    在Log4j的配置文件中,有一个log4j.rootLogger用于指定将何种等级的信息输出到哪些文件中, 这一项的配置情况如下: log4j.rootLogger=日志等级,输出目的地1,输出目的地 ...

  6. 排查log4j不输出日志到文件的问题

    问题描述 项目使用Spring Boot框架,在pom文件中添加了如下配置: <dependency> <groupId>org.slf4j</groupId> & ...

  7. log4j不输出日志的解决方案

    参考:http://blog.csdn.net/qq994406030/article/details/53433159 主要是log4j.properties log权限和log输出方式没配好.

  8. log4j日志优先级导致的不输出日志

    在sae部署微信代码的时候,发现它的默认日志很不友好,看起来很费劲,详细看了一下说明发现它可以根据log4j的输出级别而分类输出,就拖了一个log4j的xml文件扔进项目代码,然后部署运行,发现没有日 ...

  9. (OAF)jdeveloper集成log4j并将日志输出到指定文件并写入数据库

    参考: How to configure Log4j in JDev 11g Ever wanted to use log4j in your adf project ? Well though Or ...

随机推荐

  1. 吴裕雄--天生自然Linux操作系统:Linux vi/vim

    Linux vi/vim 所有的 Unix Like 系统都会内建 vi 文书编辑器,其他的文书编辑器则不一定会存在. 但是目前我们使用比较多的是 vim 编辑器. vim 具有程序编辑的能力,可以主 ...

  2. pandas(二)

    1.Series序列 一维的数组数据,构建是传二维数据会报错,数据具有索引,构建时如果不传索引,默认为数字rang索引. series存在列名和索引,sr.at[0]是通过列名来定位数据(iat定位行 ...

  3. Python—构造单向链表数据类型

    # _*_ coding=utf-8 _*_ class Node: """ 创建链表的属性 """ def __init__(self, ...

  4. [转载]markown语法

    目录 Cmd Markdown 公式指导手册 一.公式使用参考 1.如何插入公式 2.如何输入上下标 3.如何输入括号和分隔符 4.如何输入分数 5.如何输入开方 6.如何输入省略号 7.如何输入矢量 ...

  5. 论文:利用深度强化学习模型定位新物体(VISUAL SEMANTIC NAVIGATION USING SCENE PRIORS)

    这是一篇被ICLR 2019 接收的论文.论文讨论了如何利用场景先验知识 (scene priors)来定位一个新场景(novel scene)中未曾见过的物体(unseen objects).举例来 ...

  6. 学习spring第二天

    Spring第二天笔记 1. 使用注解配置Spring入门 1.1. 说在前面 学习基于注解的IoC配置,大家脑海里首先得有一个认知,即注解配置和xml配置要实现的功能都是一样的,都是要降低程序间的耦 ...

  7. windows下使用vs code调试简单的C程序

    常使用visual studio code(vs code)打开.c文件,如果让vs code具备调试技能估计会比较有用 准备工作: 1. vs code安装插件:cpptools 2. window ...

  8. py学习笔记1.13、1.14

    1.name.title() 首字母大写 name.upper() 全部大写 name.lower() 全部小写 2.+ 合并字符串 3.单引号.双引号都可以表示字符串 4.# 注释 5.索引制定为- ...

  9. bzoj2882工艺(最小表示法)

    O(nlogn)的做法十分显然,有三种可以做到O(nlogn)的:1.最容易的想法:把串扩展成两倍,然后跑一遍SA求后缀数组.2.求后缀同样也可以用SAM去求解,用map存一下.3.最暴力的方法:直接 ...

  10. 【网络流】Modular Production Line

    [网络流]Modular Production Line 焦作上的一道,网络流24题中的原题.... https://nanti.jisuanke.com/t/31715 给出了1e5个点,但是因为最 ...