2016-08-29 2 views
1

Мне нужно отфильтровать некоторые консольные операторы log.info, предназначенные для профиля prod maven, в то время как я в dev.Как фильтровать log4j журналы, кроме уровней журнала?

Например: log4j.properties

# Root logger option 
log4j.rootLogger = INFO,console,file 

# Direct log messages to a log file 
log4j.appender.console=org.apache.log4j.ConsoleAppender 
log4j.appender.console.layout=org.apache.log4j.PatternLayout 

log4j.appender.file=org.apache.log4j.DailyRollingFileAppender 
log4j.appender.file.File=${catalina.home}/logs/application.log 
log4j.appender.file.layout=org.apache.log4j.PatternLayout 
log4j.appender.file.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} %-5p %-5X{username} %c{1}:%L - %m%n 

MyClass.java

public class MyClass{ 

private static final Log log = LogFactory.getLog(MyClass.class); 

, а затем в каком-то месте мы используем log.info писать много информации для производства. Я хочу удалить эту информацию во время разработки. Возможно, для такого производственного случая я мог бы использовать другой регистратор, включающий/выключая его выход в свойствах (в зависимости от профиля maven).

Благодаря

+0

Пример? Существует много подходов. –

ответ

0

Вы можете использовать различный регистратор и настроить log4j использовать различные уровни в логе для них. Если вы не хотите, чтобы некоторые из них просто установили NONE в качестве уровня журнала.