java log4j выберите файл для входа - PullRequest
5 голосов
/ 31 января 2012

Мне нужно записывать сообщения отладки из одного и того же класса в разные файлы.
Я имею в виду, что из того же класса мне нужен конкретный оператор отладки, чтобы перейти к fileA, а другой конкретный оператор отладки - fileB.

В случае, если неясно, что я пытаюсь сделать, это записать сетевые сообщения в совершенно отдельный файл, чем другие сообщения входа в систему, которые выводит этот класс.

Если я сделаю

<logger name="com.test.modules" additivity="false" >
    <priority value="debug"/>
    <appender-ref ref="netWorkCommunication"/>  
    <appender-ref ref="generalDebug"/>  
  </logger>  

, тогда запись из моего класса будет идти в оба файла (так как это из одного пакета).

Как настроить log4j, чтобы я мог выбрать, какой оператор ведения журнала из классов в com.test.modules перейти к , какой файл appender ?

Ответы [ 2 ]

7 голосов
/ 31 января 2012

Используйте отдельный Logger для каждого файла:

private static Logger log = Logger.getLogger(YourClass.class);
private static Logger networkLog = Logger.getLogger("network." + YourClass.class.getName());
private static Logger httpLog = Logger.getLogger("http." + YourClass.class.getName());

и определите приложение для каждого регистратора как обычно.

2 голосов
/ 31 января 2012

Это действительно выглядит сценарий, где должны быть использованы несколько регистраторов. Сконфигурируйте отдельный регистратор для работы в сети и просто укажите для него другое приложение.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...