2009-06-24 2 views
24

Позвольте мне предисловие к этому вопросу, сказав, что я исчерпал Google или, по крайней мере, то, что я пытался найти. «log4j threshold», «log4j threshold category», «log4j appender threshold category» и т. д. Но я действительно не понимаю результатов, которые я получаю от Google.log4j appender порог и категория

Это полная конфигурация, которую мне дали. Я не могу понять, как изменить его в соответствии с моими потребностями.

<?xml version="1.0" encoding="UTF-8"?> 
<!DOCTYPE log4j:configuration SYSTEM "log4j.dtd"> 

<!-- ===================================================================== --> 
<!--                  --> 
<!-- Log4j Configuration             --> 
<!--                  --> 
<!-- ===================================================================== --> 

<!-- $Id: jboss-log4j.xml 62403 2007-04-18 15:26:43Z [email protected] $ --> 

<!-- 
| For more configuration infromation and examples see the Jakarta Log4j 
| owebsite: http://jakarta.apache.org/log4j 
--> 

<log4j:configuration xmlns:log4j="http://jakarta.apache.org/log4j/" debug="false"> 

<!-- ================================= --> 
<!-- Preserve messages in a local file --> 
<!-- ================================= --> 

<appender name="FILE" class="org.jboss.logging.appender.DailyRollingFileAppender"> 
    <errorHandler class="org.jboss.logging.util.OnlyOnceErrorHandler"/> 
    <param name="File" value="${jboss.server.log.dir}/server.log"/> 
    <param name="Append" value="false"/> 

    <!-- Rollover at midnight each day --> 
    <param name="DatePattern" value="'.'yyyy-MM-dd"/> 

    <layout class="org.apache.log4j.PatternLayout"> 
    <param name="ConversionPattern" value="%d %-5p [%c] %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="DEBUG"/> 

    <layout class="org.apache.log4j.PatternLayout"> 
    <!-- The default pattern: Date Priority [Category] Message\n --> 
    <param name="ConversionPattern" value="%d{ABSOLUTE} %-5p [%c] %m%n"/> 
    </layout> 
</appender> 



<!-- ================ --> 
<!-- Limit categories --> 
<!-- ================ --> 

<category name="com.arjuna"> 
    <priority value="FATAL"/> 
</category> 

<category name="com.sun.facelets"> 
    <priority value="ERROR"/> 
</category> 

<category name="jacorb"> 
    <priority value="FATAL"/> 
</category> 

<category name="javax.enterprise.resource"> 
    <priority value="WARNING"/> 
</category> 

<category name="javax.enterprise.resource.webcontainer.jsf"> 
    <priority value="WARNING"/> 
</category> 

<category name="org.apache"> 
    <priority value="FATAL"/> 
</category> 

<category name="org.hibernate"> 
    <priority value="FATAL"/> 
</category> 

<category name="org.jboss"> 
    <priority value="INFO"/> 
</category> 

<category name="org.jboss.ejb3.EJB3Deployer"> 
    <priority value="WARNING" /> 
</category> 

<category name="org.jboss.ejb3.JmxKernelAbstraction"> 
    <priority value="WARNING" /> 
</category> 

<category name="org.jboss.management"> 
    <priority value="FATAL"/> 
</category> 

<category name="org.jboss.serial"> 
    <priority value="FATAL"/> 
</category> 

<category name="org.jboss.wsf.framework"> 
    <priority value="FATAL"/> 
</category> 

<category name="org.jgroups"> 
    <priority value="FATAL"/> 
</category> 

<category name="org.quartz"> 
    <priority value="FATAL" /> 
</category> 
<!-- ======================= --> 
<!-- Setup the Root category --> 
<!-- ======================= --> 

<root> 
    <appender-ref ref="CONSOLE"/> 
    <appender-ref ref="FILE"/> 
</root> 



</log4j:configuration> 

Я не понимаю, как «пороговый» уровень добавителя взаимодействует с категориями. Смотрите, я хочу, чтобы сообщения com.foo.bar отображались на консоли. Но похоже, что я получаю намного больше, например, org.jboss.wsf.framework сбрасывает сообщения DEBUG, хотя у меня есть категория с именем, которое соответствует ей и устанавливается в FATAL.

Я уверен, что я манипулирую правильным конфигурационным файлом, поскольку jboss сообщает, что он перезагружает конфигурацию после того, как я ее изменил. Итак, как правильно установить уровень категории/порога? В чем разница между порогом и категорией?

Пример вывода (отрезанный). Почему кварц появляется на консоли, когда у меня установлен FATAL?

2009-06-22 00:58:37,666 INFO [org.quartz.plugins.history.LoggingJobHistoryPlugin] Job JobInitializationPlugin.JobInitializationPlugin_jobInitializer execution complete at 00:58:37 06/22/2009 and reports: null 
2009-06-22 01:08:37,669 DEBUG [org.quartz.simpl.SimpleJobFactory] Producing instance of Job 'JobInitializationPlugin.JobInitializationPlugin_jobInitializer', class=org.quartz.jobs.FileScanJob 
2009-06-23 15:44:17,790 INFO [org.jboss.wsf.stack.jbws.NativeServerConfig] 3.0.5.GA 
2009-06-23 15:44:17,868 DEBUG [org.jboss.wsf.framework.deployment.DeploymentAspectManagerImpl] setDeploymentAspects on WSDeploymentAspectManagerEJB 
2009-06-23 15:44:17,868 DEBUG [org.jboss.wsf.framework.deployment.DeploymentAspectManagerImpl] setDeploymentAspects on WSDeploymentAspectManagerEndpointAPI 
+0

Можете ли вы показать настоящий файл log4j (например, как вы установили категорию org.jboss.wsf) и фактический проблемный вывод консоли? – Yishai

+0

Yishai: Я обновил вопрос. – Amy

ответ

25

Для ответа на конкретный вопрос о том, почему Кварц появляется на лесозаготовки, вы должны изменить конфигурацию кварца следующим образом:

<category name="org.quartz" additivity="false"> 
    <priority value="FATAL" /> 
</category> 

Атрибут аддитивность сообщает log4j, чтобы изменить установки корневого и использовать только для org.quartz.

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

Чтобы ответить на ваш вопрос о том, как порог взаимодействует с категорией, в основном думайте, что это как публикация/подписка. Категория устанавливает то, что публикуется регистратором, пороговое значение устанавливает уровень подписки для приложения.

Сложно предположить, что категория - это не одна вещь, а иерархия, поэтому тот факт, что вы устанавливаете уровень публикации в одной категории, - это не вся история. Он может быть переопределен в иерархии, как это было в вашем случае.

+0

Большое вам спасибо! – Amy

+0

Я нашел этот вопрос и ответил очень запутанным. Я считаю, что вопрос был отредактирован несколько раз, поэтому этот ответ теперь довольно вводит в заблуждение. Конечно, если я использую данный log4j xml, я делаю _not_, чтобы получить какие-либо сообщения INFO или DEBUG Quartz - они ограничены FATAL. Примечание. Я тестировал это в автономной программе, а не в JBoss, поэтому я не знаю, если JBoss делает что-то умное/отличное от log4j. – davidfrancis

+0

@davidfrancis, JBoss, вероятно, устанавливает уровень корня в нечто иное, чем вы в своем автономном режиме. Я думаю, что вопрос и ответ по-прежнему актуальны. – Yishai

4

Move "< Appender-исх исх =" КОНСОЛЬ "/>" от < корня> в < категории имя = "com.foo.bar">.

т.х .:

<category name="com.foo.bar"> 
    <priority value="DEBUG"/> 
    <appender-ref ref="CONSOLE"/> 
</category> 

<root> 
    <appender-ref ref="FILE"/> 
</root> 

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

+0

Я обновил вопрос с полной конфигурацией и некоторыми примерами вывода того, о чем я говорю. – Amy

+0

Просто потому, что JBoss перезагружается, это не значит, что это то, что используется. См. Debug to true для корневого элемента log4j, и вывод может помочь вам понять, что происходит неправильно. –

+0

Спасибо ...это прекрасно работает с этим предложением. Моя проблема решена после удаления объявления appender с тега . –

Смежные вопросы