Как настроить log4j, используя log4j.xml, чтобы добавить в разные файлы журнала на основе имени класса? -- log4j пол Связанный проблема

How do I configure log4j using log4j.xml to append to different log files based on class name?


27
vote

проблема

русский

Я хочу настроить log4j, чтобы все журнал Meensages производится из классов под пакет com.foo.bar Перейти в bar.log, и все журналы Meessages производится из классов под пакет com.bar.blatz Перейти к blatz.log ,

Вопросы

    .
  • Как мне сделать это, используя log4j.xml?
  • Я знаю, что это возможно, используя файлы свойств, но как мне это сделать, используя конфигурацию XML?
Английский оригинал

I want to set up log4j so that all log meessages produced from classes under package com.foo.bar go to bar.log, and all the log meessages produced from classes under package com.bar.blatz go to blatz.log.

Questions

  • How do I do this using log4j.xml?
  • I know its possible using property files, but how do I do it using the XML configuration?
</div
  

Список ответов

39
 
vote
vote
Лучший ответ
 

Это основано на My ответ < / a> К аналогичным вопросам:

 <код> <!DOCTYPE log4j:configuration SYSTEM "log4j.dtd"> <log4j:configuration xmlns:log4j="http://jakarta.apache.org/log4j/">     <!-- general application log -->     <appender name="BarLogFile" class="org.apache.log4j.FileAppender">         <param name="File" value="bar.log" />         <param name="Threshold" value="INFO" />         <layout class="org.apache.log4j.PatternLayout">             <param name="ConversionPattern" value="%-5p %t [%-40.40c] %x - %m%n"/>         </layout>     </appender>       <!-- additional fooSystem logging -->     <appender name="BlatzLogFile" class="org.apache.log4j.FileAppender">         <param name="File" value="blatz.log" />         <layout class="org.apache.log4j.PatternLayout">             <param name="ConversionPattern" value="%-5p %t [%-40.40c] %x - %m%n"/>         </layout>     </appender>      <logger name="com.foo.bar">         <appender-ref ref="BarLogFile"/>     </logger>      <logger name="com.bar.blatz">         <appender-ref ref="BlatzLogFile"/>     </logger>      <root>         <level value="INFO"/>         <!-- no appender, output will be swallowed (I think) -->     </root> </log4j:configuration>   

Если вы добавите Appender-Ref в корневой элемент, он также получит сообщения COM.FOO.BAR ETC. Вы можете остановить, что указав «добавку =« ложь »на регистраторах.

 

This is based on my answer to a similar question:

<!DOCTYPE log4j:configuration SYSTEM "log4j.dtd"> <log4j:configuration xmlns:log4j="http://jakarta.apache.org/log4j/">     <!-- general application log -->     <appender name="BarLogFile" class="org.apache.log4j.FileAppender">         <param name="File" value="bar.log" />         <param name="Threshold" value="INFO" />         <layout class="org.apache.log4j.PatternLayout">             <param name="ConversionPattern" value="%-5p %t [%-40.40c] %x - %m%n"/>         </layout>     </appender>       <!-- additional fooSystem logging -->     <appender name="BlatzLogFile" class="org.apache.log4j.FileAppender">         <param name="File" value="blatz.log" />         <layout class="org.apache.log4j.PatternLayout">             <param name="ConversionPattern" value="%-5p %t [%-40.40c] %x - %m%n"/>         </layout>     </appender>      <logger name="com.foo.bar">         <appender-ref ref="BarLogFile"/>     </logger>      <logger name="com.bar.blatz">         <appender-ref ref="BlatzLogFile"/>     </logger>      <root>         <level value="INFO"/>         <!-- no appender, output will be swallowed (I think) -->     </root> </log4j:configuration> 

If you add an appender-ref to the root element, it will also receive com.foo.bar etc messages. You can stop that by specifying 'additivity="false"' on the loggers.

</div
 
 
-4
 
vote
 <код>   <root>         <level value="INFO"/>         <!-- no appender, output will be swallowed (I think) -->   </root>   

Мы можем добавить приложения здесь. Он будет работать, если приложение использует корневой регистратор. Например кварцевые планирующие API.

 
  <root>         <level value="INFO"/>         <!-- no appender, output will be swallowed (I think) -->   </root> 

We can add appenders here. It will work if the application is using root logger. for example quartz Scheduler API.

</div
 
 
 
 

Связанный проблема

1  Я пытаюсь получить имя сервера в Weblogic для использования в My Log4j Config  ( Im trying to get the name of a server in weblogic to use in my log4j config ) 
Я использую log4j в проекте, который развернут к кластерной среде Weblogic 11G, и я пытаюсь получить имя сервера, который приложение развернуто на него, чтобы...

12  ClassCastexception: org.slf4j.impl.log4jloggerAdapter не может быть отбран до ch.qos.logback.classic.logger  ( Classcastexception org slf4j impl log4jloggeradapter cannot be cast to ch qos l ) 
Я следил за Это ответ Для того, чтобы добавить аптечку во время выполнения. Хотя это работает для оригинального плаката, я получаю это исключение в строке <...

1  Log4J сообщение об ошибке в Repast Simphony - Batch Run  ( Log4j error message in repast simphony batch run ) 
При запуске мою модель Freepast Simphony в Batch Run Я получаю сообщение об ошибке: <код> log4j:WARN No appenders could be found for logger (RLFA.society3.r...

4  Структурированная / комбинированная регистрация с log4j  ( Structured combined logging with log4j ) 
Я надеюсь, что вы можете мне помочь. У меня есть веб-сервис, который необходимо зарегистрировать транзакции. Поскольку существует много ударов, операторы жу...

0  Используя Singleton, чтобы получить экземпляр регистратора Log4j, чтобы изолировать имя регистратора  ( Using a singleton to get a log4j logger instance in order to isolate the logger ) 
Я использую свой сервер Webmethods, который, среди прочего, сервлетный контейнер. Реализация регистрации по умолчанию MWS является Log4J, поэтому мне разрешен...

14  Как настроить уровень Log4J во время выполнения?  ( How do i adjust log4j levels at runtime ) 
У меня есть простое веб-приложение, работающее на Tomcat 5.5 с Log4j для регистрации. Изредка мне нужно подтолкнуть вход в отладку, но большую часть времени я...

0  Log4j + Visual Studio Code: возможно ли интегрировать Log4J для автоматизации тестирования в VS-коде?  ( Log4j visual studio code is it possible to integrate log4j for test automatio ) 
Я новичок в тестовой автоматизации. Я пытаюсь создать рамки для обучения, используя Java, Maven, Testng. До сих пор я смог запустить TestCases и следую по мет...

-1  Log4J Реализация регистрации  ( Log4j logging implementation ) 
Я использую Apache log4j в мою приложение, это независимое ухо, которое я развернут. Журналы отображаются. Но во время выполнения я пытаюсь изменить уровень ж...

0  Лучшая регистрация Hibernate Valuation Bean Hibernate JPA  ( Better logging of hibernate jpa bean validation ) 
Я должен пропустить что-то, но очень сложно выяснить, что на самом деле не удалось проверить проверку JPA для Hibernate. Когда проверка не удалась для аннот...

1  log4j.properties Простой вопрос  ( Log4j properties simple question ) 
log4j.logger.mylog = debug, a1 Я хочу знать 2 вещи, Что такое "MyLog" здесь? Что такое "а" здесь? ...

33  Как исключить один класс из Log4j Logger / Appender?  ( How to exclude a single class from a log4j logger appender ) 
У меня есть пакет "com.example". Этот пакет имеет пять классов. Я хочу войти четыре из этих классов в файл, но исключить пятый класс. Я мог бы написать четы...

0  Удаление Jar от войны  ( Removing jar from war ) 
<Р> Когда я развернуть мой архив войны в Jboss 5.1, я получаю: <код> ERROR [STDERR] log4j:ERROR A "org.jboss.logging.appender.FileAppender" object is not as...

1  Log4j.xml, тот же пакет, другой уровень идет к разным преподавателям  ( Log4j xml same package different level goes to different appender ) 
Предположим, у меня есть два приложка консоли и файл. Для пакета «My.package» я хочу предупреждать + логи уровня перейти к файлу и информацию + логи уровня Пе...

1  log4j 1.2.17 + mdc + udp  ( Log4j 1 2 17 mdc udp ) 
У меня есть приложение, которое использует log4j 1.2.17 с MDC. Мне удается настроить удаленное ведение журнала, используя <код> org.apache.log4j.net.SocketApp...

2  Как сделать журналы с помощью log4j, имея пользовательский заголовок?  ( How to make a logs using log4j having a custom header ) 
Я делаю файл журнала, используя log4j, имею следующий формат: х, х, х, х, х X, X. х, х, х Икс Опускать Опускать Опускать Опускать Отказ Отказ , Чтобы постав...

Связанный проблема

1  Я пытаюсь получить имя сервера в Weblogic для использования в My Log4j Config 
12  ClassCastexception: org.slf4j.impl.log4jloggerAdapter не может быть отбран до ch.qos.logback.classic.logger 
1  Log4J сообщение об ошибке в Repast Simphony - Batch Run 
4  Структурированная / комбинированная регистрация с log4j 
0  Используя Singleton, чтобы получить экземпляр регистратора Log4j, чтобы изолировать имя регистратора 
14  Как настроить уровень Log4J во время выполнения? 
0  Log4j + Visual Studio Code: возможно ли интегрировать Log4J для автоматизации тестирования в VS-коде? 
-1  Log4J Реализация регистрации 
0  Лучшая регистрация Hibernate Valuation Bean Hibernate JPA 
1  log4j.properties Простой вопрос 
33  Как исключить один класс из Log4j Logger / Appender? 
0  Удаление Jar от войны 
1  Log4j.xml, тот же пакет, другой уровень идет к разным преподавателям 
1  log4j 1.2.17 + mdc + udp 
2  Как сделать журналы с помощью log4j, имея пользовательский заголовок? 



© 2021 www.qaru.top All Rights Reserved. Q&A House все права защищены


Licensed under cc by-sa 3.0 with attribution required.