log4j配置失效日志中打印Debug信息问题

目录
  • log4j配置失效日志中打印Debug信息
    • 去除依赖的方法
  • log4j日志的配置--Debug

log4j配置失效日志中打印Debug信息

最近发布项目的时候发现控制台打印的日志较往常多了很多,仔细一看,debug和info信息也赫然在列,打开log4j.xml配置文件看一下:

<!DOCTYPE log4j:configuration SYSTEM "log4j.dtd">
<log4j:configuration xmlns:log4j="http://jakarta.apache.org/log4j/" debug="false">
	<appender name="CONSOLE" class="org.apache.log4j.ConsoleAppender">
		<layout class="org.apache.log4j.PatternLayout">
			<param name="ConversionPattern" value="[%d{dd/MM/yy hh:mm:ss:sss z}] %t %5p %c{2}: %m%n" />
		</layout>
		<filter class="org.apache.log4j.varia.LevelRangeFilter">
		    <param name="LevelMax" value="ERROR" />
		    <param name="LevelMin" value="INFO" />
		</filter>
	</appender>

	<appender name="catAppender" class="com.dianping.cat.log4j.CatAppender">
        <param name="Threshold" value="ERROR"></param>
    </appender>
	<root>
		<priority value="error" />
		<!-- 日志输出最低级别  -->
		<appender-ref ref="CONSOLE" />
		<appender-ref ref="catAppender" />
	</root>
</log4j:configuration>

配置的是error级别,显然不应该出现debug信息的,一定是配置文件没起作用,什么原因呢?

查资料找到一种解释:Log4j和logback冲突了,这样会导致Log4j的日志级别降低到DEBUG级别。

项目用的是log4j,没用到logback,难道是依赖隐式地加入了logback?打开依赖看下,还真的有logback:

知道了原因,就在maven依赖中把logback去掉。

去除依赖的方法

1. 调到引入logback的依赖处,如图,右键->Jump To Source

2. 排掉logback依赖

<dependency>
<groupId>com.weimob.saas.foundation</groupId>
<artifactId>wxbase-core-service-client</artifactId>
<version>1.3.2-SNAPSHOT</version>
<exclusions>
<exclusion>
<groupId>ch.qos.logback</groupId>
<artifactId>logback-classic</artifactId>
</exclusion>
<exclusion>
<groupId>ch.qos.logback</groupId>
<artifactId>logback-core</artifactId>
</exclusion>
</exclusions>
</dependency>

log4j日志的配置--Debug

############################### 日志记录器定义 ###############################
# 日志输出级别 OFF、DEBUG、INFO、WARN、ERROR
log4j.rootLogger = DEBUG,consoleAppender,debug,info,warn,error

############################### 日志输出控制器定义 ###############################
#根记录器 控制台输出控制器
log4j.appender.consoleAppender = org.apache.log4j.ConsoleAppender
log4j.appender.consoleAppender.Target = System.out
log4j.appender.consoleAppender.layout = org.apache.log4j.PatternLayout
log4j.appender.consoleAppender.layout.ConversionPattern = %-d{yyyy-MM-dd HH\:mm\:ss} - %C [%t\:%r] - [%p] %m%n

#根记录器 文件输出控制器 DEBUG
log4j.logger.debug=debug
log4j.appender.debug = org.apache.log4j.RollingFileAppender
log4j.appender.debug.encoding=UTF-8
log4j.appender.debug.File =E:\\tomcat-8.5.16-x86\\mylog\\debug.log
log4j.appender.debug.Append = true
log4j.appender.debug.Threshold = DEBUG
log4j.appender.debug.MaxFileSize=900KB
log4j.appender.debug.MaxBackupIndex=1
log4j.appender.debug.layout = org.apache.log4j.PatternLayout
log4j.appender.debug.layout.ConversionPattern = %-d{yyyy-MM-dd HH\:mm\:ss} - %C [%t\:%r] - [%p] %m%n

#根记录器 文件输出控制器 INFO
log4j.logger.info=info
log4j.appender.info = org.apache.log4j.RollingFileAppender
log4j.appender.info.encoding=UTF-8
log4j.appender.info.File =E:\\tomcat-8.5.16-x86\\mylog\\info.log
log4j.appender.info.Append = true
log4j.appender.info.Threshold = INFO
log4j.appender.info.MaxFileSize=900KB
log4j.appender.info.MaxBackupIndex=1
log4j.appender.info.layout = org.apache.log4j.PatternLayout
log4j.appender.info.layout.ConversionPattern = %-d{yyyy-MM-dd HH\:mm\:ss} - %C [%t\:%r] - [%p] %m%n

#根记录器 文件输出控制器 WARN
log4j.logger.warn=warn
log4j.appender.warn = org.apache.log4j.RollingFileAppender
log4j.appender.warn.encoding=UTF-8
log4j.appender.warn.File =E:\\tomcat-8.5.16-x86\\mylog\\warn.log
log4j.appender.warn.Append = true
log4j.appender.warn.Threshold = WARN
log4j.appender.warn.MaxFileSize=900KB
log4j.appender.warn.MaxBackupIndex=1
log4j.appender.warn.layout = org.apache.log4j.PatternLayout
log4j.appender.warn.layout.ConversionPattern = %-d{yyyy-MM-dd HH\:mm\:ss} - %C [%t\:%r] - [%p] %m%n

#根记录器 文件输出控制器 ERROR
log4j.logger.error=error
log4j.appender.error = org.apache.log4j.RollingFileAppender
log4j.appender.error.encoding=UTF-8
log4j.appender.error.File =E:\\tomcat-8.5.16-x86\\mylog\\error.log
log4j.appender.error.Append = true
log4j.appender.error.Threshold = ERROR
log4j.appender.error.MaxFileSize=900KB
log4j.appender.error.MaxBackupIndex=1
log4j.appender.error.layout = org.apache.log4j.PatternLayout
log4j.appender.error.layout.ConversionPattern = %-d{yyyy-MM-dd HH\:mm\:ss} - %C [%t\:%r] - [%p] %m%n

以上为个人经验,希望能给大家一个参考,也希望大家多多支持我们。

(0)

相关推荐

  • 使用Log4j为项目配置日志输出应用详解以及示例演示的实现分析

    Log4j组件构成  Log4j由三个重要的组件构成: 1.日志信息的优先级(Logger) 2.日志信息的输出目的地(Appender) 3.日志信息的输出格式(Layout). 概要: 日志信息的优先级从高到低有ERROR.WARN. INFO.DEBUG,分别用来指定这条日志信息的重要程度: 日志信息的输出目的地指定了日志将打印到控制台还是文件中: 而输出格式则控制了日志信息的显示内容. Log4j介绍 Log4j是 Apache的一个开放源代码项目,通过使用Log4j,我们可以控制日志信

  • Log4j定时打印日志及添加模块名配置的Java代码实例

    配置间隔时间,定时打印日志  接到个需求,通过log4j定时打印日志,需求描述如下:需要能够定时打印日志,时间间隔可配.说到定时,首先想到了DailyRollingFileAppender类,各种定时,根据datePattern,这个可以参考类SimpleDateFormat类,常见的一些定时设置如下: '.'yyyy-MM: 每月 '.'yyyy-ww: 每周 '.'yyyy-MM-dd: 每天 '.'yyyy-MM-dd-a: 每天两次 '.'yyyy-MM-dd-HH: 每小时 '.'yy

  • 解决springmvc整合Mybatis的Log4j日志输出问题

    springmvc整合Mybatis的Log4j日志输出 当我们进行web开发的时候总是看到配置的log4j日志在控制台无法显示mybatis的主要是指sql.参数.结果,出现这种问题有两种情况: 第一种情况 下面文档描述的mybatis本身内置很多种日志框架使用,所以如果我们要用具体哪个日志框架,就需要进行相应mybatis配置,或者就是按照mybatis本身规则运行. 问题在这里文档:http://mybatis.github.io/mybatis-3/zh/logging.html 配置方

  • java自定义日志输出文件(log4j日志文件输出多个自定义日志文件)

    log4j输出多个自定义日志文件 如果在实际应用中需要输出独立的日志文件,怎样才能把所需的内容从原有日志中分离,形成单独的日志文件呢? 先看一个常见的log4j.properties文件,它是在控制台和test.log文件中记录日志: 复制代码 代码如下: log4j.rootLogger=DEBUG, stdout, logfile log4j.appender.stdout=org.apache.log4j.ConsoleAppender log4j.appender.stdout.layo

  • log4j配置失效日志中打印Debug信息问题

    目录 log4j配置失效日志中打印Debug信息 去除依赖的方法 log4j日志的配置--Debug log4j配置失效日志中打印Debug信息 最近发布项目的时候发现控制台打印的日志较往常多了很多,仔细一看,debug和info信息也赫然在列,打开log4j.xml配置文件看一下: <!DOCTYPE log4j:configuration SYSTEM "log4j.dtd"> <log4j:configuration xmlns:log4j="http

  • Springboot+MDC+traceId日志中打印唯一traceId

    目录 1. 为什么需要这个traceId 2.通过MDC设置traceId 2.1 使用filter过滤器设置traceId 2.2 使用JWT token过滤器的项目 2.3 使用Interceptor拦截器设置traceId 3.logback.xml中配置traceId 4.补充异步方法带入上下文的traceId 5.在接口放回中,增加traceId返回 先看一张图: 有同学问:日志中[]中类似uuid的这个traceId是怎么实现的,这边文章就介绍下如何在springboot工程下用MD

  • 在日志中记录Java异常信息的正确姿势分享

    目录 日志中记录Java异常信息 遇到的问题 原因分析 正确的做法 java异常在控制台和日志里面的打印记录 1.e.printStackTrace()打印在哪里 2.e.printStackTrace()打印的内容是什么 3.如果将e.printStackTrace()的信息打印在日志里应该怎么做呢? 日志中记录Java异常信息 遇到的问题 今天遇到一个线上的BUG,在执行表单提交时失败,但是从程序日志中看不到任何异常信息. 在Review源代码时发现,当catch到异常时只是输出了e.get

  • Log4j 配置日志打印时区的实现方法

    og4j版本:2.8.1 开发桌面程序时遇到一个问题,idea中日志时间和CMD中jar包运行日志时间都正常,使用exe4j打成的exe运行后,日志的时间都要少8个小时,时区变得不对了 网上找了一圈发现没有类似问题的解决办法,后来终于在stack overflow 中找到相应的解决办法 在log4j2.xml配置文件中,进行如下配置即可 <!-- 输出日志格式 --> <PatternLayout pattern="%date{yyyy-MM-dd HH:mm:ss.SSS}{

  • 详谈异步log4j2中的location信息打印问题

    目录 异步log4j2的location信息打印问题 说下解决 1.全异步 同步异步混合 log4j2支持异步打印提高打印输出速度 pom依赖添加 全局模式2两种 局部模式 AsyncLogger 异步log4j2的location信息打印问题 背景:项目改造过程中将log4j2改成异步,发现行号没有打印,于是扒了下官方文档,大概陈述下: 先说一下这个问题是怎么解决的,然后稍微扩展一下其他配置,有兴趣的可以往下看或者溜一遍官方文档 说下解决 在<AsyncLogger>标签中配置include

  • 深入浅析java web log4j 配置及在web项目中配置Log4j的技巧

    在上篇文章给大家介绍了Java log4j详细教程,本文给大家介绍java web log4j配置及web项目中配置log4j的技巧.具体详情请看下文吧. 首先给大家提供log4j.jar下载:http://logging.apache.org/log4j/1.2/download.html 一.java web项目使用log4j 1.在web.xml文件中添加 <!-- 配置log4j --> <context-param> <param-name>webAppRoo

  • django日志默认打印request请求信息的方法示例

    需求 请求view中手动打印日志时中插入request的如下信息(每个request请求都记录可以使用中间件进行解决,但这里仅仅是在需要的地方手动打印): #统一附加日志内容 ADD_LOG = r'''{"username": request.user, "path": request.path, "request_id": request.id, "login_id": request.login_id}''' 旧的解决办

  • Unity3D在Preview中打印日志的方法

    Preview窗口除了可以预览模型之外,我们还可以做别的操作. 今天我们来写个小工具在Preview窗口中显示调试信息. 可以看下面的图,同样是打印 health 和 power 的日志,在 Preview 中显示比在 Console 中显示舒服多了. 左边是Console中显示,右边是Preview窗口中显示. 创建Editor目录,然后把下面的脚本放进去 using UnityEngine; using UnityEditor; [CustomEditor(typeof(Object), t

  • Perl中捕获警告信息、异常信息并写入日志详解

    虽然建议在每个Perl脚本和模块中开启警告,可是你又不想用户看到Perl发出的警告. 一方面你想在代码前面使用use warnings作为你的安全网,另一方面,通常警告会出现在屏幕上.多数情况下,客户不知道如何处理这些警告.如果幸运的话这些警告仅仅让客户惊讶一下,当然,不幸的是他们尝试着去修复它们... (这里说的不是Perl程序员.) 第三方面,你或许想要保存这些警告供之后分析. 此外,在很多地方还有很多Perl脚本和应用程序没有使用use warnings也没有在#!行中使用-w.加上了us

  • Python向日志输出中添加上下文信息

    除了传递给日志记录函数的参数(如msg)外,有时候我们还想在日志输出中包含一些额外的上下文信息.比如,在一个网络应用中,可能希望在日志中记录客户端的特定信息,如:远程客户端的IP地址和用户名.这里我们来介绍以下几种实现方式: 通过向日志记录函数传递一个extra参数引入上下文信息 使用LoggerAdapters引入上下文信息 使用Filters引入上下文信息 一.通过向日志记录函数传递一个extra参数引入上下文信息 前面我们提到过,可以通过向日志记录函数传递一个extra参数来实现向日志输出

随机推荐