Java 将信息日志筛选到Appender文件(特定类除外)

Java 将信息日志筛选到Appender文件(特定类除外),java,log4j,slf4j,Java,Log4j,Slf4j,我正在使用Log4j,我想从类Main写入日志文件, 问题是日志从其他类获取所有信息日志 以及我想写入文件的类。 例如: log4j.xml <?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE log4j:configuration SYSTEM "log4j.dtd"> <log4j:configuration xmlns:log4j="http://jakarta.apache.org/log4j/">

我正在使用Log4j,我想从类Main写入日志文件, 问题是日志从其他类获取所有信息日志 以及我想写入文件的类。 例如:

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="fileAppenderMain1" class="org.apache.log4j.RollingFileAppender">
        <param name="append" value="false" />
        <param name="file" value="logs/main1/main1.log" />
        <param name="MaxFileSize" value="10240KB" />
        <layout class="org.apache.log4j.PatternLayout">     
            <param name="ConversionPattern" value="%d{dd MMM yyyy HH:mm:ss} %5p %c{1} - %m%n" />
        </layout>
    </appender>


    <logger name="Main1.class" additivity="false">
        <level value="INFO" />
        <appender-ref ref="fileAppenderMain1" />
    </logger>


    <root>
        <priority value="INFO"></priority>
        <appender-ref ref="fileAppenderMain1"></appender-ref>
    </root>
</log4j:configuration>


    public class Main1 {

    private static Logger log = Logger.getLogger(Main1.class);

    public void log()  {

        log.info("Hello world");

     }
    }

    public class Main2 {    

    private static Logger log = Logger.getLogger(Main2.class);

    public void log()   {

        log.info("Hello world");

     }
    }

    public class Main {

    public static void main(String [] args)   {

        Main1 main1=new Main1();
        Main2 main2=new Main2();
        main1.log();
        main2.log();


     }
    }
我只想记录“Main1”日志


感谢您将根记录器设置为info

如果您想单独查看Main1的信息日志以及WARN和更高版本中的其余信息,可以将其更改为WARN、ERROR、FATAL

因此:

<root>
        <priority value="WARN"></priority>
        <appender-ref ref="fileAppenderMain1"></appender-ref>
</root>


更新:

如果您需要Main1.class的日志,而不需要其他可以使用的日志

<root>
        <priority value="OFF"></priority>
        <appender-ref ref="fileAppenderMain1"></appender-ref>
</root>


我的应用程序中有错误、警告和信息日志,这对我没有帮助。你说“我只想记录”Main1“日志”。保留Main1信息日志,对于应用程序的其余部分(根日志记录器),保留所需的默认级别。我以为你想要main1和其他更高级别的信息。您可以使用最高级别,如致命级别来过滤消息。但这只适用于开发模式。如果这对你没有帮助,你的问题不够具体。嗨,很抱歉这些误导性的问题。我需要它的产品模式。thanksI更新了答案,使其仅适用于Main1.class日志。
<root>
        <priority value="OFF"></priority>
        <appender-ref ref="fileAppenderMain1"></appender-ref>
</root>