Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/400.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Log4j如何仅禁用致命条目_Java_Logging_Configuration_Log4j_Switch Statement - Fatal编程技术网

Java Log4j如何仅禁用致命条目

Java Log4j如何仅禁用致命条目,java,logging,configuration,log4j,switch-statement,Java,Logging,Configuration,Log4j,Switch Statement,您知道如何在Log4j的配置中仅禁用致命日志输出吗 所有其他条目,如跟踪、警告、调试、信息、错误,我们仍然希望有 非常感谢您事先提供的帮助。在appender上设置记录器级别或阈值的正常机制只允许您禁用低于某个级别的消息,同时包括所有更高级别的消息。在您的情况下,您希望以最高优先级抑制消息,但包含较低优先级的消息,因此必须使用 无法在log4j.properties中配置筛选器,因此如果您当前正在使用筛选器,则必须切换到XML或编程配置。设置要启用日志的包级别。 例如,包是com.abc,然后将

您知道如何在Log4j的配置中仅禁用致命日志输出吗

所有其他条目,如跟踪、警告、调试、信息、错误,我们仍然希望有


非常感谢您事先提供的帮助。

在appender上设置记录器级别或阈值的正常机制只允许您禁用低于某个级别的消息,同时包括所有更高级别的消息。在您的情况下,您希望以最高优先级抑制消息,但包含较低优先级的消息,因此必须使用


无法在
log4j.properties
中配置筛选器,因此如果您当前正在使用筛选器,则必须切换到XML或编程配置。

设置要启用日志的包级别。
例如,包是com.abc,然后将级别设置为

    log4j.logger.com.abc=TRACE,WARN,DEBUG,INFO,ERROR

你为什么要这样做?我们有一个巨大的应用程序,日志无处不在。我们必须禁用致命日志,因为我们不再监视它们。应用程序的编写方式是生成不必要的致命日志。我们尽量避免更改应用程序,因为它已经在生产中,更改成本非常昂贵。谢谢您的回答。有没有办法在配置文件中更改它,如Kunal Surana在上面用“log4j.logger.com.abc=TRACE,WARN,DEBUG,INFO,ERROR”这样的示例所写的那样?@MerkoSMS您不能以
.properties
配置格式配置过滤器,因此,最简单的方法是用等效的log4j.xml替换log4j.properties,并将过滤器定义放在其中。@MerkoSMS在许多地方,log4j内置了一个强大的假设,即在您关心特定级别的消息的任何地方,您也希望看到“更重要”的消息。要在一个级别上查看消息(例如错误),而不同时查看更重要的消息(例如致命消息),唯一的方法是使用筛选器。这将设置记录器的级别以跟踪(即记录所有内容),并将其输出发送到名为WARN、DEBUG、,信息和错误-语法正好是一个级别,后跟零个或多个appender名称。好的,谢谢。是的,致命级别是最低的。禁用FATAL的唯一方法是使用
log.setLevel(level.OFF)
将级别设置为OFF。但这将禁用所有日志