2016-08-24 4 views
0

Выход журналов должен поступать из определенного пакета.slf4j протоколирование в конкретный пакет

Сейчас в log4j.properties, добавил следующее свойство: log4j.logger.com.pack1 = DEBUG, стандартный вывод

PfB код (test.java класс в com.pack1.logging пакет) :

package com.pack1.logging; 
import org.slf4j.Logger; 
import org.slf4j.LoggerFactory; 

public class test { 

private static Logger myLogger = LoggerFactory.getLogger("xyz"); 

static { 
    myLogger.debug("test-my"); 
    LoggerFactory.getLogger(test.class).debug("with class"); 

} 

} 

После использования вышеприведенного кода

Ожидаемое о/р: тест-мой с классом

Actual о/р: с классом

я как-то хочу, чтобы выход из этого конкретного пакета «com.pack1». Может ли кто-нибудь помочь мне в этом? Заранее спасибо :)

ответ

0

Если вы не настроили его по-разному в ваших log4j.properties, регистратор, который вы получаете от

LoggerFactory.getLogger("xyz") 

, вероятно, корень регистратора, который, вероятно, установлен для входа на INFO уровне , поэтому вы не видите «test-my» в выводе журнала.

С другой стороны, так как ваш test класс находится в com.pack1 пакете, регистратор, который вы получите от

LoggerFactory.getLogger(test.class) 

является тот, который вы настроили с линией

log4j.logger.com.pack1=DEBUG, stdout 

в ваш файл log4j.properties, поэтому появляется сообщение об ошибке «с классом».