2014-02-14 4 views
0

Мне интересно, есть ли способ проверить свойства log4j для запуска Java-процесса. Я столкнулся с проблемой в этом вопросе. Я установил конфигурацию на уровень INFO и использую приложение Rolling file. Система запускается и работает нормально в течение минуты, а журналы запускают соответствующий файл. Но внезапно он начинает регистрироваться в консоли на уровне DEBUG и больше не идет в файл. Скорее всего, некоторые модули сбрасывают свойства Log4j на некоторые другие значения. Я попытался положить перерывы на несколько методов в Log4j property Configurator. Но это не помогло, как может быть, я не поставил перерывы на соответствующий метод. Любой ключ приветствуется.Проверка свойств log4j работающего Java-процесса

Я настроил log4j с ниже конфигурации, но конфигурация не кажется, уже не через несколько секунд

log4j.rootLogger=INFO, A1,A2 

log4j.appender.A1 = org.apache.log4j.RollingFileAppender 
log4j.appender.A1.File = ${storm.home}/logs/${logfile.name} 
log4j.appender.A1.Append = true 
log4j.appender.A1.DatePattern = '.'yyy-MM-dd 
log4j.appender.A1.layout = org.apache.log4j.PatternLayout 
log4j.appender.A1.layout.ConversionPattern = %d{yyyy-MM-dd HH:mm:ss:SSS} %c{1} [%p] %m%n 

log4j.appender.A2=com.proptotype.poc.CustomAppender 
log4j.appender.A2.layout=org.apache.log4j.PatternLayout 
log4j.appender.A2.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss:SSS} %c{1} [%p] %m%n 
log4j.appender.A2.myName=scribe 
log4j.appender.A2.scribeHost=127.0.0.1 
log4j.appender.A2.scribePort=1464 
+0

пожалуйста, покажите ваши log4j.properties – Sanjeev

ответ

1

Если вы используете Log4j 2, вы можете использовать JMX для запроса и изменения текущей конфигурации журналирования.

Это даже небольшое приложение с графическим интерфейсом, чтобы сделать это: http://logging.apache.org/log4j/2.x/manual/jmx.html#ClientGUI

1

Если вы хотите узнать, что текущий уровень журнала вы можете сделать это следующим образом.

System.out.println(Logger.getRootLogger().getLevel()); 

Аналогично вы можете узнать другие свойства также от класса Logger для например:

Enumeration enums = Logger.getRootLogger().getAllAppenders(); 
     while (enums.hasMoreElements()) { 
      System.out.println(enums.nextElement().toString()); 
     } 
Смежные вопросы