Java 将信息日志筛选到Appender文件(特定类除外)
我正在使用Log4j,我想从类Main写入日志文件, 问题是日志从其他类获取所有信息日志 以及我想写入文件的类。 例如: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.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>