有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java关闭类的警告日志

如何在我的log4j.properties中关闭特定class(com.service.infra)的警告日志

log4j.rootLogger=DEBUG,QuietAppender,SilentAppender,LoudAppender
log4j.appender.QuietAppender=org.apache.log4j.RollingFileAppender
log4j.appender.QuietAppender.Threshold=WARN
log4j.appender.QuietAppender.File=/Log/front-log
log4j.appender.QuietAppender.layout=org.apache.log4j.PatternLayout
log4j.appender.QuietAppender.layout.ConversionPattern= %m%n


log4j.appender.SilentAppender=org.apache.log4j.DailyRollingFileAppender
log4j.appender.SilentAppender.Threshold=INFO
log4j.appender.SilentAppender.File=/par/info,infoLog
log4j.appender.SilentAppender.DatePattern='.'dd-MM-yy
log4j.appender.SilentAppender.layout=org.apache.log4j.PatternLayout
log4j.appender.SilentAppender.layout.ConversionPattern=%d{dd/MM/yy kk:mm:ss.SSS} %-3p [%t] %x (%F:%L) - %m%n

在这里,我想关闭我的信息日志文件/par/info,infoLog中的警告日志,但对于警告日志文件,它应该被记录到一个文件/log/front log


共 (2) 个答案

  1. # 1 楼答案

    你必须引用Log4j Log Level。 这里有一个例子。警告日志Class3将关闭,因为使用了日志级别ERROR

    log4j。xml

    <?xml version="1.0" encoding="UTF-8"?>
    <!DOCTYPE log4j:configuration SYSTEM "log4j.dtd">
    <log4j:configuration xmlns:log4j="http://jakarta.apache.org/log4j/" debug="false">
        <appender name="CONSOLE" class="org.apache.log4j.ConsoleAppender">
            <param name="Target" value="System.out"/>
            <param name="Threshold" value="DEBUG"/>
            <layout class="org.apache.log4j.PatternLayout">
                <param name="ConversionPattern" value="%d{ABSOLUTE} %-5p [%c] %m%n"/>
            </layout>
        </appender>
        <appender name="APPLICATION" class="org.apache.log4j.DailyRollingFileAppender">
            <param name="file" value="/ACE-MRBS/application.log"/>
            <param name="MaxBackupIndex" value="10"/>
            <layout class="org.apache.log4j.PatternLayout">
                <param name="ConversionPattern" value="%d{yyyy-MM-dd HH:mm:ss,SSS} |%5p| [%c] | %m%n"/>
            </layout>
        </appender>
        <root>
            <appender-ref ref="CONSOLE"/>
        </root>
        <logger name="your.app.test.Class1" additivity="false">
            <level value="DEBUG"/>
            <appender-ref ref="APPLICATION"/>
        </logger>
        <logger name="your.app.test.Class2" additivity="false">
            <level value="WARN"/>
            <appender-ref ref="APPLICATION"/>
        </logger>
        <logger name="your.app.test.Class3" additivity="false">
            <level value="ERROR"/>
            <appender-ref ref="APPLICATION"/>
        </logger>
    </log4j:configuration>
    
  2. # 2 楼答案

    在上面的配置中。。设置threshold=ERROR,这将仅将日志记录限制为错误级别,并且不会在日志中包含低于此级别的任何级别,即警告、调试、信息等

    log4j.appender.QuietAppender.Threshold=WARN