user3188777 user3188777 - 1 month ago 7
Java Question

JasperReports JAR File Causes Excessive Logging with Log4j

I am working on a Java web application using Tomcat and Log4j. I am in the process of integrating DynamicReports 4.1.1 with the application. DynamicReports relies on a JAR file called jasperreports6.2.2-jar. After I added the aforementioned JAR file to the project, Log4j began logging unhelpful garbage once a minute every single minute of the day, and also any time a user requests a web page of the application. This is not acceptable in a production environment, and it makes debugging the application difficult.

I need to maintain logging of the application, but I don't want JasperReports to force unnecessary logging around the clock or when a user requests a web page.

What is causing JasperReports to perform this excessive logging?

How can I stop JasperReports from triggering the logging mechanism but still maintain regular logging throughout the rest of the application?

If I cannot do this easily (have my cake and eat it, too), why not?

Please note that I am willing to dig in the JasperReports source code in the offending JAR file and recompile it if necessary in order to make this work.

Here is my log4j.properties file. It has been in the class path directory of my project long before I ever adopted it, and also before I added 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


Here is the garbage that is spouted to my log file every single minute of the day. Note that the code that prints these messages appears in a java class in my application that handles sending emails at specific times during the day.

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


Also, here is an example of the garbage that is spouted to my log file when a user accesses a web page in my application. I believe that the objects referenced in this portion of the log file have been a part of my application long before I added any DynamicReports libraries to the project.

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

Answer

The problem is that, for whatever reason, log4j is ignoring the log4j.properties file when the JasperReports jar file is included in the project. Creating a log4j.xml file in the WEB-INF directory and giving it some configuration options above DEBUG solved the problem.

Here is the contents of the log4j.xml file I used to resolve the issue:

<?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>

Comments