configuration - found - logger appender layout
log4j appender umbral y categorÃa (2)
Permítanme comenzar esta pregunta diciendo que he agotado Google, o al menos lo que he estado buscando. "umbral log4j", "categoría de umbral log4j", "categoría de umbral del usuario log4j", etc. Pero realmente no entiendo los resultados que estoy obteniendo de Google.
Esta es la configuración completa que me han dado. No puedo averiguar cómo modificarlo para satisfacer mis necesidades.
<?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>
No entiendo cómo el nivel de "umbral" del appender interactúa con las categorías. Mira, solo quiero que los mensajes com.foo.bar se muestren en la consola. Pero parece que estoy obteniendo mucho más que eso, por ejemplo, org.jboss.wsf.framework consiste en descargar mensajes DEBUG, aunque tengo una categoría con un nombre que coincide y está establecida en FATAL.
Estoy seguro de que estoy manipulando el archivo de configuración correcto, ya que jboss informa que está recargando la configuración después de cambiarla. Entonces, ¿cómo establezco los niveles de categoría / umbral correctos? ¿Cuál es la diferencia entre el umbral y la categoría?
Ejemplo de salida (cortada). ¿Por qué aparece el cuarzo en la consola cuando lo tengo configurado en 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
Mueva "<appender-ref ref =" CONSOLE "/>" de <root> a <category name = "com.foo.bar">.
Es decir:
<category name="com.foo.bar">
<priority value="DEBUG"/>
<appender-ref ref="CONSOLE"/>
</category>
<root>
<appender-ref ref="FILE"/>
</root>
Con la configuración que muestra, la consola no debería recibir ningún mensaje de depuración, así que verifique si se puede usar alguna otra configuración o si algún código está cambiando la configuración mediante programación.
Para responder a la pregunta específica de por qué aparece Quartz en el registro, tendrá que cambiar la configuración de Quartz de la siguiente manera:
<category name="org.quartz" additivity="false">
<priority value="FATAL" />
</category>
El atributo de aditividad le dice a log4j que anule la configuración de la raíz y use esto solo para org.quartz.
En una versión anterior de la pregunta que dijo que solo deseaba que se activaran los mensajes de esas clases, debe comenzar con la configuración de la prioridad en el elemento raíz como fatal (o incluso NO) y luego solo se registrarán esos paquetes. / Clases que enciendes explícitamente.
Para responder a su pregunta sobre cómo el umbral interactúa con la categoría, básicamente piense que es como una publicación / suscripción. La categoría establece lo que publica el registrador, el umbral establece el nivel de suscripción del appender.
Esto es un poco complicado, ya que la categoría no es una sola cosa, sino una jerarquía, por lo que el hecho de que establezca el nivel de publicación en una categoría no es toda la historia. Puede ser anulado en la jerarquía, como lo fue en su caso.