log4j

你知道为什么阿里禁止工程师直接使用日志系统(Log4j、Logback)中的API吗?

谁说胖子不能爱 提交于 2019-12-10 17:25:04
作为 Java 程序员,我想很多人都知道日志对于一个程序的重要性,尤其是 Web 应用。很多时候,日志可能是我们了解应用程序如何执行的唯一方式。 所以,日志在 Java Web 应用中至关重要,但是,很多人却以为日志输出只是一件简单的事情,所以会经常忽略和日志相关的问题。在接下来的几篇文章中,我会来介绍介绍这个容易被大家忽视,但同时也容易导致故障的知识点。 Java 语言之所以强大,就是因为他很成熟的生态体系。包括日志这一功能,就有很多成熟的开源框架可以被直接使用。 首先,我们先来看一下目前有哪些框架被广泛的使用。 常用日志框架 j.u.l  j.u.l 是 java.util.logging 包的简称,是 JDK 在 1.4 版本中引入的 Java 原生日志框架。Java Logging API 提供了七个日志级别用来控制输出。这七个级别分别是:SEVERE、WARNING、INFO、CONFIG、FINE、FINER、FINEST。 Log4j  Log4j 是 Apache 的一个开源项目,通过使用 Log4j,我们可以控制日志信息输送的目的地是控制台、文件、GUI 组件,甚至是套接口服务器、NT 的事件记录器、UNIX Syslog 守护进程等;我们也可以控制每一条日志的输出格式;通过定义每一条日志信息的级别,我们能够更加细致地控制日志的生成过程。最令人感兴趣的就是

Migrating from log4j 1.2 to log4j 2: LevelRangeFilter

Deadly 提交于 2019-12-10 17:22:12
问题 What is the log4j 2 equivalent of the following log4j 1.2 configuration? <filter class="org.apache.log4j.varia.LevelRangeFilter"> <param name="LevelMin" value="DEBUG" /> <param name="LevelMax" value="INFO" /> </filter> 回答1: Instead of having to create your own filter (http://bitfish.eu/java/log4j-2-multiple-appenders-with-different-log-levels/) you can simply use a composite filter with two ThresholdFilters: <Filters> <ThresholdFilter level="DEBUG"/> <ThresholdFilter level="WARN" onMatch=

log4j SMTPAppender sending mail with empty mail body

耗尽温柔 提交于 2019-12-10 16:37:59
问题 In my grails app I have lg4j config as follows log4j = { error 'org.codehaus.groovy.grails.web.servlet', // controllers 'org.codehaus.groovy.grails.web.pages', // GSP 'org.codehaus.groovy.grails.web.sitemesh', // layouts 'org.codehaus.groovy.grails.web.mapping.filter', // URL mapping 'org.codehaus.groovy.grails.web.mapping', // URL mapping 'org.codehaus.groovy.grails.commons', // core / classloading 'org.codehaus.groovy.grails.plugins', // plugins 'org.codehaus.groovy.grails.orm.hibernate', /

Is it possible to change the log level of a package in log4j?

廉价感情. 提交于 2019-12-10 16:14:52
问题 Currently I have a library that is logging certain information as ERROR. If I change my log4j settings like this: log4j.logger.com.company.theirpackage.foo=OFF that will completely disable the library's logging altogether. However, what I'd really like is to still see the information, but have it logged at a WARN or INFO level. In other words, when that particular code calls log.error() , I want it to be as if they had called log.warn() or log.info() instead. Is there a way to do this with

Closing log4j Logger to release File Descriptor

雨燕双飞 提交于 2019-12-10 15:46:53
问题 I have written a Server that receives RMI requests and performs some operations. For each request a Log4J Logger instance is created. Following is the code snippet which is used for creating Logger instance. Logger log = Logger.getLogger("log_" + requestID); log.setAdditivity(false); FileAppender appender = null; try { PatternLayout layout = new PatternLayout("%-5p %C{1} %d{yyyy-MM-dd HH:mm:ss} : %m%n"); appender = new FileAppender(layout, logFileName, false); } catch(Exception e) { logger

springboot项目启动失败,但是没有任何错误信息

怎甘沉沦 提交于 2019-12-10 15:36:46
项目启动,控制台只打印了SPRING的日志,然后自动停止,如截图所示: 这种什么错误信息都没有,其实遇到这种情况,可以把启动方法try catch起来即可在控制台显示错误信息,如图所示: 接下来再启动,就会看到错误信息了 注意:springboot项目中经常遇到日志jar包问题,其实根本原因就是log4j和common-logs这俩日志包冲突了,解决方法呢,有两种, 解决冲突,排除掉slf4j,common-logs任意一方,spring使用slf4j,那可以排除掉common-logs 将两种日志输出兼容,maven依赖如下所示: <dependency> <groupId>org.slf4j</groupId> <artifactId>jcl-over-slf4j</artifactId> </dependency> 这个依赖可以将log4j输出到slf4j,从而从sl4j输出,问题完美解决!有了错误提示,那解决问题就容易多啦! 来源: oschina 链接: https://my.oschina.net/u/2000675/blog/3141007

log4j Could not read configuration file

时光怂恿深爱的人放手 提交于 2019-12-10 15:29:40
问题 I am adding logging to a java web project I am working on. I have run into an error that I am unable to figure out. The error I am getting from tomcat is: log4j:ERROR Could not read configuration file [log4j.properties]. java.io.FileNotFoundException: log4j.properties (No such file or directory) I have this simple method in my class: @RemotingInclude public UserAccount save(UserAccount dataObject) { PropertyConfigurator.configure("log4j.properties"); logger.debug(dataObject.toString());

How to append multiple appender references in Log4j2?

拜拜、爱过 提交于 2019-12-10 15:27:18
问题 I know in log4j you could use multiple appenders by doing something like: log4j.logger.com.x=DEBUG, append1, append2 but what would the equivalence be in log4j2? Would it be this: logger.com.x.level = DEBUG logger.com.x.appenderRefs = append1, append2 ? 回答1: You did not provide in your example, what are the types of appenders append1 and append2, but this is important, when you are using the properties file. Let's say the appenders are defined as following: appender.console.type = Console

How to disable log4j logging in Http Client 4.1 to log to FileAppender

喜夏-厌秋 提交于 2019-12-10 15:23:40
问题 Here is my log4j configuration for a HTTP client: log4j.appender.HTTPCLIENT_APPDR=com.xxx.log.FileAppender log4j.appender.HTTPCLIENT_APPDR.File=${user.dir}/log/access.log log4j.appender.HTTPCLIENT_APPDR.layout=org.apache.log4j.PatternLayout log4j.appender.HTTPCLIENT_APPDR_APPDR.layout.ConversionPattern=%d{dd MMM yyyy HH:mm:ss SSS}ms %-5p [%t] - %m%n log4j.appender.HTTPCLIENT_APPDR.MaxFileSize=20000KB log4j.appender.HTTPCLIENT_APPDR.MaxBackupIndex=30 log4j.logger.org.apache.http=DEBUG

Log4j2 SyslogAppender not working

醉酒当歌 提交于 2019-12-10 15:14:06
问题 I'm using Log4j version 2.1 (the latest stable version) and trying to use a Syslog appender to log to a syslog server. I'm using the configuration given at their official site (http://logging.apache.org/log4j/2.x/manual/appenders.html#SyslogAppender): <Syslog name="RFC5424" format="RFC5424" host="localhost" port="514" protocol="UDP" appName="MyApp" includeMDC="true" facility="LOCAL0" enterpriseNumber="18060" newLine="true" messageId="Audit" id="App"/> When I start my app and do a LogManager