Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/396.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java log4j appender优先级冲突?_Java_Log4j - Fatal编程技术网

Java log4j appender优先级冲突?

Java log4j appender优先级冲突?,java,log4j,Java,Log4j,我有这个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.

我有这个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
因此,好的,警告级别信息正在log4j.log文件中注册。没关系

但是,我希望在我的eclipse控制台中看到信息级别的消息,但是我没有得到任何响应

有什么解决办法吗?我认为问题出在WARN、file rootLogger配置中,因此我尝试了以下方法:

# Global logging configuration
log4j.rootLogger=INFO, file
但是没有任何改变

谢谢大家!

阅读更多内容并找到样本

层次继承 给定记录器C的继承级别等于记录器层次结构中的第一个非空级别,从C开始,在层次结构中向上延伸到根记录器

基本选择规则 如果p>=q,则在已分配或继承(以适当的级别q为准)的记录器中启用级别p的日志请求

这条规则是log4j的核心。它假定级别是有序的。对于标准级别,我们有DEBUG 应该是这样的。在此处添加控制台,并将默认根日志级别设置为INFO

尝试使用log4j.xml而不是log4j.properties。阅读更多

示例log4j.xml:


谢谢但是如果我只想在rootLogger中收集警告或更大的消息,但想在控制台中查看每个调试或更大的消息,会发生什么?编辑:我得到的文件和控制台的输出都是相同的,com.XXX.foo.bar类的输出也是一样的。您可以尝试使用log4j.xml,您可以完全控制它。在这里找到它谢谢你Braj,但我不能这样做,因为公司的限制:必须是log4j.properties文件你好,Braj,我找到了一个解决方案,看看你给我的链接。我把它贴出来,给你信用!非常感谢你!!!
log4j.rootLogger=INFO, file, console
<?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>