简体   繁体   中英

log4j appender priority conflict?

I have this log4j.properties:

# Global logging configuration
log4j.rootLogger=WARN, file

### Direct log messages to a log file
log4j.appender.file = org.apache.log4j.DailyRollingFileAppender
log4j.appender.file.File= C:\\eclipse\\servers\\apache-tomcat-6.0.39\\logs\\log4j.log
log4j.appender.file.layout=org.apache.log4j.PatternLayout
log4j.appender.file.layout.ConversionPattern=%d{ISO8601} %5p %c{1}:%L - %m%n


### Console messages Appender
log4j.appender.console=org.apache.log4j.ConsoleAppender
log4j.appender.console.layout=org.apache.log4j.PatternLayout  
log4j.appender.console.layout.ConversionPattern=%d{ISO8601} %5p %c{1}:%L - %m%n

### Appender-to-Class definition
log4j.logger.com.XXX.payplatform.test.*=INFO, console
log4j.additivity.com.XXX.payplatform.test.*=false

So, ok, the WARN level information is being registered in the log4j.log file. That's OK.

But, I want to see INFO-level messages in my eclipse console, but i am not getting any response there.

Any solutions? I think the problem is in the "WARN, file" rootLogger configuration, so i tried this:

# Global logging configuration
log4j.rootLogger=INFO, file

But no changes resulted...

Thank you!

Read more Apache log4j 1.2 - Short introduction to log4j and find the samples as well.

Level Inheritance

The inherited level for a given logger C, is equal to the first non-null level in the logger hierarchy, starting at C and proceeding upwards in the hierarchy towards the root logger.

Basic Selection Rule

A log request of level p in a logger with (either assigned or inherited, whichever is appropriate) level q, is enabled if p >= q.

This rule is at the heart of log4j . It assumes that levels are ordered. For the standard levels, we have DEBUG < INFO < WARN < ERROR < FATAL.


It should be like this. Add console here and set default root log level to INFO .

log4j.rootLogger=INFO, file, console

OR

Try with log4j.xml instead of log4j.properties . Read more Configuring Log4j 2

Sample log4j.xml :

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

<log4j:configuration xmlns:log4j="http://jakarta.apache.org/log4j/">

    <appender name="STDOUT" class="org.apache.log4j.ConsoleAppender">
        <layout class="org.apache.log4j.PatternLayout">
            <param name="ConversionPattern" value="%d{ISO8601} %5p %c{1}:%L - %m%n" />
        </layout>
    </appender>

    <appender name="FILE_LOG" class="org.apache.log4j.DailyRollingFileAppender">
        <param name="File" value="/logs/log4j.log" />
        <param name="Append" value="true" />
        <param name="ImmediateFlush" value="true"/>
        <param name="DatePattern" value="'.'dd-MM-yyyy-HH"/>
        <layout class="org.apache.log4j.PatternLayout">
            <param name="ConversionPattern" value="%d{ISO8601} %5p %c{1}:%L - %m%n" />
        </layout>
    </appender> 

    <category name="com.XXX.payplatform.test">
        <priority value="INFO" />
        <appender-ref ref="STDOUT"/>
    </category> 

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

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM