停止石英调试日志记录log4j

时间:2014-01-13 12:38:27

标签: java logging log4j quartz-scheduler

我试图关闭令人讨厌的石英DEBUG记录。 我正在使用log4j作为日志框架,我已经尝试将此行添加到lg4j proprieties文件

"log4j.logger.org.quartz=ERROR"

我仍然收到大量这些调试日志消息

13:35:44.680 [MyScheduler_QuartzSchedulerThread] DEBUG o.quartz.core.QuartzSchedulerThread - batch acquisition of 0 triggers

如何关闭此功能?

EDIT。我已经将我的配置移动到xml文件......但仍然遇到了同样烦人的问题

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE log4j:configuration SYSTEM "log4j.dtd">

<log4j:configuration>
    <appender name="console" class="org.apache.log4j.ConsoleAppender">
        <param name="Target" value="System.out" />
        <layout class="org.apache.log4j.PatternLayout">
            <param name="ConversionPattern" value="%d{ABSOLUTE} %5p %c{1}:%L - %m%n" />
        </layout>
    </appender>

    <logger name="org.quartz" >
        <level value="ERROR" />
        <appender-ref ref="console" />
    </logger>

    <logger name="org.hibernate">
        <level value="ERROR" />
        <appender-ref ref="console" />
    </logger>

    <logger name="com.mchange.v2.c3p0" additivity="false">
        <level value="ERROR" />
        <appender-ref ref="console" />
    </logger>

    <root>
        <priority value="ERROR" />
        <appender-ref ref="console" />
    </root>
</log4j:configuration>

EDIT2 ...这是我的pom.xml文件(有趣的部分)

<!-- slf4j-log4j -->
        <dependency>
            <groupId>org.slf4j</groupId>
            <artifactId>slf4j-log4j12</artifactId>
            <version>1.6.1</version>
        </dependency>
<dependency>
            <groupId>log4j</groupId>
            <artifactId>log4j</artifactId>
            <version>1.2.9</version>
        </dependency>
<!-- QUARTZ -->
        <dependency>
            <groupId>org.quartz-scheduler</groupId>
            <artifactId>quartz</artifactId>
            <version>2.1.7</version>
        </dependency>

类路径中的EDIT3 jar

activation-1.1.jar
ant-1.8.2.jar
ant-launcher-1.8.2.jar
antlr-2.7.7.jar
asm-1.5.3.jar
asm-attrs-1.5.3.jar
asm-commons-3.3.jar
asm-tree-3.3.jar
bcmail-jdk14-1.38.jar
bcmail-jdk14-138.jar
bcprov-jdk14-1.38.jar
bcprov-jdk14-138.jar
bctsp-jdk14-1.38.jar
c3p0-0.9.1.1.jar
castor-1.2.jar
cglib-2.1_3.jar
commons-beanutils-1.8.3.jar
commons-codec-1.5.jar
commons-collections-3.2.1.jar
commons-digester-2.1.jar
commons-fileupload-1.2.2.jar
commons-io-2.0.1.jar
commons-lang-2.5.jar
commons-logging-1.1.1.jar
dom4j-1.6.1.jar
ehcache-1.2.3.jar
filename.txt
freemarker-2.3.18.jar
groovy-all-2.1.3.jar
hibernate-3.2.7.ga.jar
hibernate-annotations-3.3.0.ga.jar
hibernate-c3p0-4.1.10.Final.jar
hibernate-commons-annotations-3.3.0.ga.jar
hibernate-commons-annotations-4.0.1.Final.jar
hibernate-core-4.1.10.Final.jar
hibernate-jpa-2.0-api-1.0.1.Final.jar
itext-2.1.7.jar
jackson-annotations-2.0.5.jar
jackson-core-2.0.5.jar
jackson-databind-2.0.5.jar
jasperreports-5.1.0.jar
javassist-3.11.0.GA.jar
javassist-3.15.0-GA.jar
jboss-logging-3.1.0.GA.jar
jboss-transaction-api_1.1_spec-1.0.0.Final.jar
jcommon-1.0.15.jar
jdbc-mysql.jar
jdtcore-3.1.0.jar
jfreechart-1.0.12.jar
jta-1.1.jar
log4j-1.2.9.jar
logback-classic-1.0.10.jar
logback-core-1.0.11.jar
mail-1.4.jar
mysql-connector-java-5.1.6.jar
ognl-3.0.4.jar
ooxml-schemas-1.1.jar
openxml4j-1.0-beta.jar
poi-3.9.jar
poi-contrib-3.7-beta3.jar
poi-examples-3.9.jar
poi-excelant-3.9.jar
poi-ooxml-3.9.jar
poi-ooxml-schemas-3.9.jar
poi-scratchpad-3.9.jar
quartz-2.1.7.jar
servlet-api-2.5.jar
slf4j-api-1.7.2.jar
slf4j-log4j12-1.6.1.jar
stax-api-1.0.1.jar
struts2-core-2.3.1.2.jar
struts2-json-plugin-2.3.1.2.jar
xml-apis-1.0.b2.jar
xmlbeans-2.3.0.jar
xwork-core-2.3.1.2.jar

5 个答案:

答案 0 :(得分:4)

Quartz使用SLF4J作为logging API。因此,您应该能够在Log4j配置文件中配置级别。

请验证以下内容:

<强> 1。您没有version conflict

确保这一点的最简单方法是让maven选择版本。

<dependency>
    <groupId>org.slf4j</groupId>
    <artifactId>slf4j-log4j12</artifactId>
    <version>1.7.5</version>
</dependency>

slf4j-log4j12将包括Log4J和SLF4J。

<强> 2。确保您的配置文件为Log4J所知。

它应该在类路径中(例如,maven项目的src / main / resources),它应该被称为log4j.xml

答案 1 :(得分:3)

如果您正在使用Logback(用作流行的log4j项目的后续版本),则可以通过向<configuration />添加记录器来关闭调试日志,如下所示:

<logger name="org.quartz.core.QuartzSchedulerThread" level="WARN" />

答案 2 :(得分:1)

quartz-2.2.2使用支持logback的slf4j。因此,将logback.xml添加到类路径并设置适当的日志级别将解决此问题。如果您使用的是另一个版本的quartz,并且它支持log4j。请忽略这一点。

<?xml version="1.0" encoding="UTF-8" ?>
<configuration>

    <logger name="org.quartz" level="ERROR"/>

    <root level="ALL">
        <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
            <encoder>
                <pattern>%d{HH:mm:ss.SSS} | %-5level | %X{username} | %thread | %logger{1} | %m%n%rEx</pattern>
            </encoder>
        </appender>
    </root>
</configuration>

答案 3 :(得分:0)

Quartz没有使用log4j,但它使用的是java.util.logging.Logger。

答案 4 :(得分:0)

我将log4j.xml重置为

 <root> 
    <priority value ="info" /> 
    <appender-ref ref="console" /> 
  </root>