В настоящее время я разрабатываю большой (функционально мудрый) веб-сервис для отдыха, и я хочу действительно хорошо вести журналы, чтобы иметь хорошее представление о том, что там происходит. . На данный момент я использую log4j для ведения журнала, используя добавленную настройку:
<!-- Appenders -->
<appender name="console" class="org.apache.log4j.ConsoleAppender">
<param name="Target" value="System.out" />
<layout class="org.apache.log4j.PatternLayout">
<param name="ConversionPattern" value="%-5p: %c - %m%n" />
</layout>
</appender>
, которая создает журналы такого типа:
10:44:55,893 INFO [STDOUT] INFO : my.package.MyClass - I'm class message
Как мне сделать это сообщение похожим на ie
10: 44: 55,893 ИНФОРМАЦИЯ: my.package.MyClass - Я классное сообщение
Могу ли я сделать специальный аппендер или что-то еще, и использовать его в некоторых классах не во всех, т.е. я хочу, чтобы в нескольких моих журналах было следующее:
Полезная нагрузка: некоторые параметры запроса
Ответ: некоторые ответ, что моя служба возвращает
дополнительные данные: некоторые дополнительные данные
Без этих INFO [STDOUT] INFO my.package.MyClass перед ним
UPDATE
Я забыл упомянуть в вопрос о том, что я использую Jboss 5. Я думаю, что jboss может добавлять 10: 44: 55,893 INFO [STDOUT]
в любой формат, который я помещаю в свою конфигурацию log4j.
ОБНОВЛЕНИЕ ДОБЫЧИ
] Я изменил это:
<!-- ============================== -->
<!-- Append messages to the console -->
<!-- ============================== -->
<appender name="CONSOLE" class="org.apache.log4j.ConsoleAppender">
<errorHandler class="org.jboss.logging.util.OnlyOnceErrorHandler"/>
<param name="Target" value="System.out"/>
<param name="Threshold" value="INFO"/>
<layout class="org.apache.log4j.PatternLayout">
<!-- The default pattern: Date Priority [Category] Message\n -->
<param name="ConversionPattern" value="%d{ABSOLUTE} %-5p [%c{1}] %m%n"/>
</layout>
</appender>
на это:
<!-- ============================== -->
<!-- Append messages to the console -->
<!-- ============================== -->
<appender name="CONSOLE" class="org.apache.log4j.ConsoleAppender">
<errorHandler class="org.jboss.logging.util.OnlyOnceErrorHandler"/>
<param name="Target" value="System.out"/>
<param name="Threshold" value="INFO"/>
<layout class="org.apache.log4j.PatternLayout">
<!-- The default pattern: Date Priority [Category] Message\n -->
<param name="ConversionPattern" value="%m%n"/>
</layout>
</appender>
И это сработало, но делать это вот так кажется некрасивым. Есть ли другой путь? Я использую комбинацию Spring MVC / JBoss.
Теперь я получаю хорошие чистые сообщения:
10:44:55,893 INFO : my.package.MyClass - I'm class message
без раздражающего префикса
10:44:55,893 INFO [STDOUT]