gpt4 book ai didi

configuration - log4j appender 阈值和类别

转载 作者:行者123 更新时间:2023-12-03 10:59:52 24 4
gpt4 key购买 nike

让我先说这个问题我已经用尽了谷歌,或者至少是我一直试图搜索的东西。 “log4j 阈值”、“log4j 阈值类别”、“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 dimitris@jboss.org $ -->

<!--
| 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>

我不明白 appender 的“阈值”级别如何与类别交互。看,我只想在控制台上显示 com.foo.bar 消息。但似乎我得到的远不止这些,例如,org.jboss.wsf.framework 正在转储 DEBUG 消息,即使我有一个名称与其匹配并设置为 FATAL 的类别。

我确定我正在操作正确的配置文件,因为 jboss 报告它在我更改配置后重新加载配置。那么如何正确设置类别/阈值级别?阈值和类别有什么区别?

示例输出(剪切)。当我将 quartz 设置为 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

最佳答案

要回答 Quartz 为何出现在日志中的具体问题,您必须按如下方式更改 Quartz 配置:

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

additivity 属性告诉 log4j 覆盖根设置并仅将其用于 org.quartz。

在问题的先前版本中,您表示您只希望打开来自这些类的那些消息,为此您必须首先将根元素中的优先级配置为致命(甚至否),然后它只会记录这些包/classes 显式打开。

要回答有关阈值如何与类别交互的问题,基本上可以将其视为发布/订阅。类别设置记录器发布的内容,阈值设置附加程序的订阅级别。

这有点复杂,因为类别不是一个单一的东西,而是一个层次结构,因此在一个类别上设置发布级别的事实并不是全部。它可能会在层次结构中被覆盖,就像您的情况一样。

关于configuration - log4j appender 阈值和类别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1041548/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com