java - JasperReports JAR 文件导致使用 Log4j 进行过多日志记录

标签 java tomcat logging jar log4j

我正在使用 Tomcat 和 Log4j 开发 Java Web 应用程序。我正在将 DynamicReports 4.1.1 与应用程序集成。 DynamicReports 依赖于名为 jasperreports6.2.2-jar 的 JAR 文件。在我将上述 JAR 文件添加到项目后,Log4j 开始每天每分钟记录一次无用的垃圾,并且在用户请求应用程序的网页时也是如此。这在生产环境中是 Not Acceptable ,并且会使应用程序的调试变得困难。

我需要维护应用程序的日志记录,但我不希望 JasperReports 全天候或在用户请求网页时强制进行不必要的日志记录。

是什么导致 JasperReports 执行这种过多的日志记录?

如何阻止 JasperReports 触发日志记录机制,但仍然在整个应用程序的其余部分保持定期日志记录?

如果我不能轻易做到这一点(吃蛋糕也吃),为什么不呢?

请注意,我愿意深入挖掘有问题的 JAR 文件中的 JasperReports 源代码,并在必要时重新编译它以完成这项工作。

这是我的 log4j.properties 文件。在我采用它之前,以及在我添加 DynamicReports 之前,它就一直在我的项目的类路径目录中。

# Root loggin directory
logDir=/usr/local/tomcat/logs

# Root logger option
log4j.rootLogger=INFO, file

# Direct log messages to a log file
log4j.appender.file=org.apache.log4j.RollingFileAppender
log4j.appender.file.File=${logDir}/detailed_debug.log
log4j.appender.file.layout=org.apache.log4j.PatternLayout
log4j.appender.file.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} %-5p %c{1}:%L - %m%n

# Direct log messages to stdout
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=%d{yyyy-MM-dd HH:mm:ss} %-5p %c{1}:%L - %m%n

这是一天中每一分钟都涌入我的日志文件的垃圾。请注意,打印这些消息的代码出现在我的应用程序中的一个 java 类中,该类处理在一天中的特定时间发送电子邮件。

DEBUG Scheduler - Not a scheduled time for scheduledworkorder
DEBUG Scheduler - Run Time: Tue Oct 11 15:15:00 CDT 2016
DEBUG Scheduler - Current Time: Tue Oct 11 08:45:32 CDT 2016
DEBUG Scheduler - Not a scheduled time for scheduledworkorder
DEBUG Scheduler - Run Time: Tue Oct 11 16:00:00 CDT 2016
DEBUG Scheduler - Current Time: Tue Oct 11 08:45:32 CDT 2016
DEBUG Scheduler - Not a scheduled time for scheduledworkorder
DEBUG Scheduler - Run Time: Tue Oct 11 16:30:00 CDT 2016
DEBUG Scheduler - Current Time: Tue Oct 11 08:45:32 CDT 2016
DEBUG Scheduler - Not a scheduled time for scheduledworkorder
DEBUG Scheduler - Top of loop.
DEBUG Scheduler - Loading Service: nightlyimportclean
DEBUG Scheduler - Run Time: Tue Oct 11 00:15:00 CDT 2016
DEBUG Scheduler - Current Time: Tue Oct 11 08:46:32 CDT 2016
DEBUG Scheduler - Not a scheduled time for nightlyimportclean
DEBUG Scheduler - Loading Service: requestTicketApproval
DEBUG Scheduler - Run Time: Tue Oct 11 09:00:00 CDT 2016
DEBUG Scheduler - Current Time: Tue Oct 11 08:46:32 CDT 2016
DEBUG Scheduler - Not a scheduled time for requestTicketApproval
DEBUG Scheduler - Run Time: Tue Oct 11 09:15:00 CDT 2016
DEBUG Scheduler - Current Time: Tue Oct 11 08:46:32 CDT 2016
DEBUG Scheduler - Not a scheduled time for requestTicketApproval
DEBUG Scheduler - Run Time: Tue Oct 11 09:30:00 CDT 2016
DEBUG Scheduler - Current Time: Tue Oct 11 08:46:32 CDT 2016
DEBUG Scheduler - Not a scheduled time for requestTicketApproval
DEBUG Scheduler - Run Time: Tue Oct 11 09:45:00 CDT 2016
DEBUG Scheduler - Current Time: Tue Oct 11 08:46:32 CDT 2016
DEBUG Scheduler - Not a scheduled time for requestTicketApproval
DEBUG Scheduler - Run Time: Tue Oct 11 10:00:00 CDT 2016
DEBUG Scheduler - Current Time: Tue Oct 11 08:46:32 CDT 2016
DEBUG Scheduler - Not a scheduled time for requestTicketApproval
DEBUG Scheduler - Run Time: Tue Oct 11 10:15:00 CDT 2016                                                                                                                                        
DEBUG Scheduler - Current Time: Tue Oct 11 08:46:32 CDT 2016                                                                                                                                    
DEBUG Scheduler - Not a scheduled time for requestTicketApproval                                                                                                                                
DEBUG Scheduler - Run Time: Tue Oct 11 10:30:00 CDT 2016                                                                                                                                        
DEBUG Scheduler - Current Time: Tue Oct 11 08:46:32 CDT 2016                                                                                                                                    
DEBUG Scheduler - Not a scheduled time for requestTicketApproval                                                                                                                                
DEBUG Scheduler - Run Time: Tue Oct 11 10:45:00 CDT 2016
DEBUG Scheduler - Current Time: Tue Oct 11 08:46:32 CDT 2016
DEBUG Scheduler - Not a scheduled time for requestTicketApproval
DEBUG Scheduler - Run Time: Tue Oct 11 11:00:00 CDT 2016
DEBUG Scheduler - Current Time: Tue Oct 11 08:46:32 CDT 2016
DEBUG Scheduler - Not a scheduled time for requestTicketApproval
DEBUG Scheduler - Run Time: Tue Oct 11 11:15:00 CDT 2016
DEBUG Scheduler - Current Time: Tue Oct 11 08:46:32 CDT 2016
DEBUG Scheduler - Not a scheduled time for requestTicketApproval
DEBUG Scheduler - Run Time: Tue Oct 11 11:30:00 CDT 2016
DEBUG Scheduler - Current Time: Tue Oct 11 08:46:32 CDT 2016
DEBUG Scheduler - Not a scheduled time for requestTicketApproval
DEBUG Scheduler - Run Time: Tue Oct 11 11:45:00 CDT 2016
DEBUG Scheduler - Current Time: Tue Oct 11 08:46:32 CDT 2016
DEBUG Scheduler - Not a scheduled time for requestTicketApproval
DEBUG Scheduler - Run Time: Tue Oct 11 12:00:00 CDT 2016
DEBUG Scheduler - Current Time: Tue Oct 11 08:46:32 CDT 2016
DEBUG Scheduler - Not a scheduled time for requestTicketApproval
DEBUG Scheduler - Run Time: Tue Oct 11 12:15:00 CDT 2016
DEBUG Scheduler - Current Time: Tue Oct 11 08:46:32 CDT 2016
DEBUG Scheduler - Not a scheduled time for requestTicketApproval
DEBUG Scheduler - Run Time: Tue Oct 11 12:30:00 CDT 2016
DEBUG Scheduler - Current Time: Tue Oct 11 08:46:32 CDT 2016
DEBUG Scheduler - Not a scheduled time for requestTicketApproval
DEBUG Scheduler - Run Time: Tue Oct 11 12:45:00 CDT 2016
DEBUG Scheduler - Current Time: Tue Oct 11 08:46:32 CDT 2016
DEBUG Scheduler - Not a scheduled time for requestTicketApproval
DEBUG Scheduler - Run Time: Tue Oct 11 13:00:00 CDT 2016
DEBUG Scheduler - Current Time: Tue Oct 11 08:46:32 CDT 2016
DEBUG Scheduler - Not a scheduled time for requestTicketApproval
DEBUG Scheduler - Run Time: Tue Oct 11 13:15:00 CDT 2016
DEBUG Scheduler - Current Time: Tue Oct 11 08:46:32 CDT 2016
DEBUG Scheduler - Not a scheduled time for requestTicketApproval
DEBUG Scheduler - Run Time: Tue Oct 11 13:30:00 CDT 2016
DEBUG Scheduler - Current Time: Tue Oct 11 08:46:32 CDT 2016
DEBUG Scheduler - Not a scheduled time for requestTicketApproval
DEBUG Scheduler - Run Time: Tue Oct 11 13:45:00 CDT 2016
DEBUG Scheduler - Current Time: Tue Oct 11 08:46:32 CDT 2016
DEBUG Scheduler - Not a scheduled time for requestTicketApproval
DEBUG Scheduler - Run Time: Tue Oct 11 14:00:00 CDT 2016
DEBUG Scheduler - Current Time: Tue Oct 11 08:46:32 CDT 2016
DEBUG Scheduler - Not a scheduled time for requestTicketApproval
DEBUG Scheduler - Run Time: Tue Oct 11 14:15:00 CDT 2016
DEBUG Scheduler - Current Time: Tue Oct 11 08:46:32 CDT 2016
DEBUG Scheduler - Not a scheduled time for requestTicketApproval
DEBUG Scheduler - Run Time: Tue Oct 11 14:30:00 CDT 2016
DEBUG Scheduler - Current Time: Tue Oct 11 08:46:32 CDT 2016
DEBUG Scheduler - Not a scheduled time for requestTicketApproval
DEBUG Scheduler - Run Time: Tue Oct 11 14:45:00 CDT 2016
DEBUG Scheduler - Current Time: Tue Oct 11 08:46:32 CDT 2016
DEBUG Scheduler - Not a scheduled time for requestTicketApproval
DEBUG Scheduler - Run Time: Tue Oct 11 15:00:00 CDT 2016
DEBUG Scheduler - Current Time: Tue Oct 11 08:46:32 CDT 2016
DEBUG Scheduler - Not a scheduled time for requestTicketApproval
DEBUG Scheduler - Run Time: Tue Oct 11 15:15:00 CDT 2016
DEBUG Scheduler - Current Time: Tue Oct 11 08:46:32 CDT 2016
DEBUG Scheduler - Not a scheduled time for requestTicketApproval
DEBUG Scheduler - Run Time: Tue Oct 11 15:30:00 CDT 2016
DEBUG Scheduler - Current Time: Tue Oct 11 08:46:32 CDT 2016
DEBUG Scheduler - Not a scheduled time for requestTicketApproval
DEBUG Scheduler - Run Time: Tue Oct 11 15:45:00 CDT 2016
DEBUG Scheduler - Current Time: Tue Oct 11 08:46:32 CDT 2016
DEBUG Scheduler - Not a scheduled time for requestTicketApproval
DEBUG Scheduler - Run Time: Tue Oct 11 16:00:00 CDT 2016
DEBUG Scheduler - Current Time: Tue Oct 11 08:46:32 CDT 2016
DEBUG Scheduler - Not a scheduled time for requestTicketApproval
DEBUG Scheduler - Loading Service: autosend
DEBUG Scheduler - Run Time: Tue Oct 11 09:15:00 CDT 2016
DEBUG Scheduler - Current Time: Tue Oct 11 08:46:32 CDT 2016
DEBUG Scheduler - Not a scheduled time for autosend
DEBUG Scheduler - Run Time: Tue Oct 11 10:15:00 CDT 2016
DEBUG Scheduler - Current Time: Tue Oct 11 08:46:32 CDT 2016
DEBUG Scheduler - Not a scheduled time for autosend
DEBUG Scheduler - Run Time: Tue Oct 11 11:15:00 CDT 2016
DEBUG Scheduler - Current Time: Tue Oct 11 08:46:32 CDT 2016
DEBUG Scheduler - Not a scheduled time for autosend
DEBUG Scheduler - Run Time: Tue Oct 11 12:15:00 CDT 2016
DEBUG Scheduler - Current Time: Tue Oct 11 08:46:32 CDT 2016
DEBUG Scheduler - Not a scheduled time for autosend
DEBUG Scheduler - Run Time: Tue Oct 11 13:15:00 CDT 2016
DEBUG Scheduler - Current Time: Tue Oct 11 08:46:32 CDT 2016
DEBUG Scheduler - Not a scheduled time for autosend
DEBUG Scheduler - Run Time: Tue Oct 11 14:15:00 CDT 2016
DEBUG Scheduler - Current Time: Tue Oct 11 08:46:32 CDT 2016
DEBUG Scheduler - Not a scheduled time for autosend
DEBUG Scheduler - Run Time: Tue Oct 11 15:15:00 CDT 2016
DEBUG Scheduler - Current Time: Tue Oct 11 08:46:32 CDT 2016
DEBUG Scheduler - Not a scheduled time for autosend
DEBUG Scheduler - Run Time: Tue Oct 11 16:15:00 CDT 2016
DEBUG Scheduler - Current Time: Tue Oct 11 08:46:32 CDT 2016
DEBUG Scheduler - Not a scheduled time for autosend
DEBUG Scheduler - Run Time: Tue Oct 11 17:15:00 CDT 2016
DEBUG Scheduler - Current Time: Tue Oct 11 08:46:32 CDT 2016
DEBUG Scheduler - Not a scheduled time for autosend
DEBUG Scheduler - Run Time: Tue Oct 11 18:15:00 CDT 2016
DEBUG Scheduler - Current Time: Tue Oct 11 08:46:32 CDT 2016
DEBUG Scheduler - Not a scheduled time for autosend
DEBUG Scheduler - Run Time: Tue Oct 11 19:15:00 CDT 2016
DEBUG Scheduler - Current Time: Tue Oct 11 08:46:32 CDT 2016
DEBUG Scheduler - Not a scheduled time for autosend
DEBUG Scheduler - Run Time: Tue Oct 11 20:15:00 CDT 2016
DEBUG Scheduler - Current Time: Tue Oct 11 08:46:32 CDT 2016
DEBUG Scheduler - Not a scheduled time for autosend
DEBUG Scheduler - Run Time: Tue Oct 11 21:15:00 CDT 2016
DEBUG Scheduler - Current Time: Tue Oct 11 08:46:32 CDT 2016
DEBUG Scheduler - Not a scheduled time for autosend
DEBUG Scheduler - Run Time: Tue Oct 11 22:15:00 CDT 2016
DEBUG Scheduler - Current Time: Tue Oct 11 08:46:32 CDT 2016
DEBUG Scheduler - Not a scheduled time for autosend
DEBUG Scheduler - Run Time: Tue Oct 11 23:15:00 CDT 2016
DEBUG Scheduler - Current Time: Tue Oct 11 08:46:32 CDT 2016
DEBUG Scheduler - Not a scheduled time for autosend
DEBUG Scheduler - Run Time: Tue Oct 11 00:15:00 CDT 2016
DEBUG Scheduler - Current Time: Tue Oct 11 08:46:32 CDT 2016
DEBUG Scheduler - Not a scheduled time for autosend
DEBUG Scheduler - Run Time: Tue Oct 11 01:15:00 CDT 2016
DEBUG Scheduler - Current Time: Tue Oct 11 08:46:32 CDT 2016
DEBUG Scheduler - Not a scheduled time for autosend
DEBUG Scheduler - Run Time: Tue Oct 11 02:15:00 CDT 2016
DEBUG Scheduler - Current Time: Tue Oct 11 08:46:32 CDT 2016
DEBUG Scheduler - Not a scheduled time for autosend
DEBUG Scheduler - Run Time: Tue Oct 11 03:15:00 CDT 2016
DEBUG Scheduler - Current Time: Tue Oct 11 08:46:32 CDT 2016
DEBUG Scheduler - Not a scheduled time for autosend
DEBUG Scheduler - Run Time: Tue Oct 11 04:15:00 CDT 2016
DEBUG Scheduler - Current Time: Tue Oct 11 08:46:32 CDT 2016
DEBUG Scheduler - Not a scheduled time for autosend
DEBUG Scheduler - Run Time: Tue Oct 11 05:15:00 CDT 2016
DEBUG Scheduler - Current Time: Tue Oct 11 08:46:32 CDT 2016
DEBUG Scheduler - Not a scheduled time for autosend
DEBUG Scheduler - Run Time: Tue Oct 11 06:15:00 CDT 2016
DEBUG Scheduler - Current Time: Tue Oct 11 08:46:32 CDT 2016
DEBUG Scheduler - Not a scheduled time for autosend
DEBUG Scheduler - Run Time: Tue Oct 11 07:15:00 CDT 2016
DEBUG Scheduler - Current Time: Tue Oct 11 08:46:32 CDT 2016
DEBUG Scheduler - Not a scheduled time for autosend
DEBUG Scheduler - Run Time: Tue Oct 11 08:15:00 CDT 2016
DEBUG Scheduler - Current Time: Tue Oct 11 08:46:32 CDT 2016
DEBUG Scheduler - Not a scheduled time for autosend
DEBUG Scheduler - Loading Service: scheduledworkorder
DEBUG Scheduler - Run Time: Tue Oct 11 09:00:00 CDT 2016
DEBUG Scheduler - Current Time: Tue Oct 11 08:46:32 CDT 2016
DEBUG Scheduler - Not a scheduled time for scheduledworkorder
DEBUG Scheduler - Run Time: Tue Oct 11 09:35:00 CDT 2016
DEBUG Scheduler - Current Time: Tue Oct 11 08:46:32 CDT 2016
DEBUG Scheduler - Not a scheduled time for scheduledworkorder
DEBUG Scheduler - Run Time: Tue Oct 11 09:40:00 CDT 2016
DEBUG Scheduler - Current Time: Tue Oct 11 08:46:32 CDT 2016
DEBUG Scheduler - Not a scheduled time for scheduledworkorder
DEBUG Scheduler - Run Time: Tue Oct 11 10:00:00 CDT 2016
DEBUG Scheduler - Current Time: Tue Oct 11 08:46:32 CDT 2016
DEBUG Scheduler - Not a scheduled time for scheduledworkorder
DEBUG Scheduler - Run Time: Tue Oct 11 11:00:00 CDT 2016
DEBUG Scheduler - Current Time: Tue Oct 11 08:46:32 CDT 2016
DEBUG Scheduler - Not a scheduled time for scheduledworkorder
DEBUG Scheduler - Run Time: Tue Oct 11 12:00:00 CDT 2016
DEBUG Scheduler - Current Time: Tue Oct 11 08:46:32 CDT 2016
DEBUG Scheduler - Not a scheduled time for scheduledworkorder
DEBUG Scheduler - Run Time: Tue Oct 11 12:25:00 CDT 2016
DEBUG Scheduler - Current Time: Tue Oct 11 08:46:32 CDT 2016
DEBUG Scheduler - Not a scheduled time for scheduledworkorder
DEBUG Scheduler - Run Time: Tue Oct 11 12:30:00 CDT 2016
DEBUG Scheduler - Current Time: Tue Oct 11 08:46:32 CDT 2016
DEBUG Scheduler - Not a scheduled time for scheduledworkorder
DEBUG Scheduler - Run Time: Tue Oct 11 13:00:00 CDT 2016
DEBUG Scheduler - Current Time: Tue Oct 11 08:46:32 CDT 2016
DEBUG Scheduler - Not a scheduled time for scheduledworkorder
DEBUG Scheduler - Run Time: Tue Oct 11 13:00:00 CDT 2016
DEBUG Scheduler - Current Time: Tue Oct 11 08:46:32 CDT 2016
DEBUG Scheduler - Not a scheduled time for scheduledworkorder
DEBUG Scheduler - Run Time: Tue Oct 11 13:15:00 CDT 2016
DEBUG Scheduler - Current Time: Tue Oct 11 08:46:32 CDT 2016
DEBUG Scheduler - Not a scheduled time for scheduledworkorder
DEBUG Scheduler - Run Time: Tue Oct 11 14:30:00 CDT 2016
DEBUG Scheduler - Current Time: Tue Oct 11 08:46:32 CDT 2016
DEBUG Scheduler - Not a scheduled time for scheduledworkorder
DEBUG Scheduler - Run Time: Tue Oct 11 14:45:00 CDT 2016
DEBUG Scheduler - Current Time: Tue Oct 11 08:46:32 CDT 2016
DEBUG Scheduler - Not a scheduled time for scheduledworkorder
DEBUG Scheduler - Run Time: Tue Oct 11 15:00:00 CDT 2016
DEBUG Scheduler - Current Time: Tue Oct 11 08:46:32 CDT 2016
DEBUG Scheduler - Not a scheduled time for scheduledworkorder
DEBUG Scheduler - Run Time: Tue Oct 11 15:15:00 CDT 2016
DEBUG Scheduler - Current Time: Tue Oct 11 08:46:32 CDT 2016
DEBUG Scheduler - Not a scheduled time for scheduledworkorder
DEBUG Scheduler - Run Time: Tue Oct 11 15:30:00 CDT 2016
DEBUG Scheduler - Current Time: Tue Oct 11 08:46:32 CDT 2016
DEBUG Scheduler - Not a scheduled time for scheduledworkorder
DEBUG Scheduler - Run Time: Tue Oct 11 15:45:00 CDT 2016
DEBUG Scheduler - Current Time: Tue Oct 11 08:46:32 CDT 2016
DEBUG Scheduler - Not a scheduled time for scheduledworkorder
DEBUG Scheduler - Run Time: Tue Oct 11 15:00:00 CDT 2016
DEBUG Scheduler - Current Time: Tue Oct 11 08:46:32 CDT 2016
DEBUG Scheduler - Not a scheduled time for scheduledworkorder
DEBUG Scheduler - Run Time: Tue Oct 11 15:15:00 CDT 2016
DEBUG Scheduler - Current Time: Tue Oct 11 08:46:32 CDT 2016
DEBUG Scheduler - Not a scheduled time for scheduledworkorder
DEBUG Scheduler - Run Time: Tue Oct 11 16:00:00 CDT 2016
DEBUG Scheduler - Current Time: Tue Oct 11 08:46:32 CDT 2016
DEBUG Scheduler - Not a scheduled time for scheduledworkorder
DEBUG Scheduler - Run Time: Tue Oct 11 16:30:00 CDT 2016
DEBUG Scheduler - Current Time: Tue Oct 11 08:46:32 CDT 2016
DEBUG Scheduler - Not a scheduled time for scheduledworkorder

此外,这里还有一个垃圾示例,当用户访问我的应用程序中的网页时,垃圾会喷到我的日志文件中。我相信在我将任何 DynamicReports 库添加到项目之前很久,日志文件的这一部分中引用的对象就已经是我的应用程序的一部分。

DEBUG RequestContextListener - Bound request context to thread: org.apache.catalina.connector.Request@33a70fb5
DEBUG DefaultListableBeanFactory - Creating instance of bean 'dbConnector'
DEBUG DefaultListableBeanFactory - Invoking afterPropertiesSet() on bean with name 'dbConnector'
DEBUG DefaultListableBeanFactory - Finished creating instance of bean 'dbConnector'
DEBUG DisposableBeanAdapter - Invoking destroy method 'destroy' on bean with name 'dbConnector'
DEBUG RequestContextListener - Cleared thread-bound request context: org.apache.catalina.connector.Request@33a70fb5
DEBUG RequestContextListener - Bound request context to thread: org.apache.catalina.connector.Request@33a70fb5
DEBUG DefaultListableBeanFactory - Creating instance of bean 'dbConnector'
DEBUG DefaultListableBeanFactory - Invoking afterPropertiesSet() on bean with name 'dbConnector'
DEBUG DefaultListableBeanFactory - Finished creating instance of bean 'dbConnector'
DEBUG DisposableBeanAdapter - Invoking destroy method 'destroy' on bean with name 'dbConnector'
DEBUG RequestContextListener - Cleared thread-bound request context: org.apache.catalina.connector.Request@33a70fb5
DEBUG RequestContextListener - Bound request context to thread: org.apache.catalina.connector.Request@33a70fb5
DEBUG DefaultListableBeanFactory - Creating instance of bean 'dbConnector'
DEBUG DefaultListableBeanFactory - Invoking afterPropertiesSet() on bean with name 'dbConnector'
DEBUG DefaultListableBeanFactory - Finished creating instance of bean 'dbConnector'
DEBUG Task - loadSteps for id:420877
DEBUG DisposableBeanAdapter - Invoking destroy method 'destroy' on bean with name 'dbConnector'
DEBUG RequestContextListener - Cleared thread-bound request context: org.apache.catalina.connector.Request@33a70fb5

最佳答案

问题是,无论出于何种原因,当项目中包含 JasperReports jar 文件时,log4j 会忽略 log4j.properties 文件。在 WEB-INF 目录中创建一个 log4j.xml 文件并在 DEBUG 之上为其提供一些配置选项解决了该问题。

这是我用来解决问题的 log4j.xml 文件的内容:

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE log4j:configuration SYSTEM "log4j.dtd">
<log4j:configuration debug="true" xmlns:log4j='http://jakarta.apache.org/log4j/'>

<appender name="console" class="org.apache.log4j.ConsoleAppender">
    <layout class="org.apache.log4j.PatternLayout">
    <param name="ConversionPattern"
      value="%d{yyyy-MM-dd HH:mm:ss} %-5p %c{1}:%L - %m%n" />
    </layout>
</appender>

<root>
    <level value="INFO" />
    <appender-ref ref="console" />
</root>

关于java - JasperReports JAR 文件导致使用 Log4j 进行过多日志记录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39979717/

相关文章:

java - 我无法相对于 jtable 列设置我的选择器

java - 为什么在对对象数组进行排序时 compareTo 方法这么慢

spring - 如何通过apache tomcat初始化Spring容器

logging - 如何使用 Terraform 11.14 启用 Azure Key Vault 日志记录?

c# - 如何从同一应用程序的两个实例安全地写入日志文件?

java - Clojure:[D 和 [Ljava.lang.Double; 之间有什么区别?

java - 无法在 Android Studio 2.1.1 的 gradle.properties 文件中设置 JVM 参数 gradle

java - JSF 标签未呈现 - FacesServlet 可能无法正常工作?

apache - 使用 Tomcat 获取请求并创建 HTTP 响应

.net - 错误记录例程中的异常怎么办?