Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/logging/2.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
Logging JBoss/Wildfly-安全高效的日志过滤-多个处理程序记录到同一个文件_Logging_Jboss_Wildfly_Wildfly 10_Jboss Cli - Fatal编程技术网

Logging JBoss/Wildfly-安全高效的日志过滤-多个处理程序记录到同一个文件

Logging JBoss/Wildfly-安全高效的日志过滤-多个处理程序记录到同一个文件,logging,jboss,wildfly,wildfly-10,jboss-cli,Logging,Jboss,Wildfly,Wildfly 10,Jboss Cli,将筛选表达式应用于总是以相同类别出现的日志消息的最安全和最有效的方法是什么 我在一个容器中有100多个应用程序记录到同一个文件。我想处理的信息非常具体。对每一条消息应用一个复杂的过滤器规范似乎需要很大的开销,所以我决定为每一个类别创建一个单独的记录器,其中包含一条我想要过滤的消息。每个记录器都有自己的处理程序和自己的过滤器规范。这样,我只会将过滤逻辑应用于尽可能少的日志消息 以下是standalone.xml中的记录器: 以下是文件处理程序: 我不明白这些文件处理程序是如何工作的,例如,

将筛选表达式应用于总是以相同类别出现的日志消息的最安全和最有效的方法是什么

我在一个容器中有100多个应用程序记录到同一个文件。我想处理的信息非常具体。对每一条消息应用一个复杂的过滤器规范似乎需要很大的开销,所以我决定为每一个类别创建一个单独的记录器,其中包含一条我想要过滤的消息。每个记录器都有自己的处理程序和自己的过滤器规范。这样,我只会将过滤逻辑应用于尽可能少的日志消息

以下是standalone.xml中的记录器:


以下是文件处理程序:


我不明白这些文件处理程序是如何工作的,例如,它们是共享一个文件描述符还是各自打开自己的文件描述符。这对我来说一直都很好,除了有一次我只从一个处理程序获得消息,而没有其他任何消息,这让我相信使用多个处理程序是不安全的,但我无法重现这一点

  • 当许多处理程序写入同一个文件时,是否存在文件损坏的风险
  • 有更好的办法吗

  • 我绝对不建议使用多个处理程序写入同一个文件。这肯定会有问题


    由于您正在定义特定的记录器,您希望看到筛选器,因此应该将筛选器放在这些记录器上。

    哇,这是一个简单的解决方案。出于某种原因,我认为过滤器规范只允许在处理程序下使用,而不允许在记录器下使用。我以为我尝试了根记录器的过滤器,但它没有工作(这是预期的吗?),但它与我的自定义记录器工作良好。谢谢。最初,还是在WildFly中,记录器不会继承过滤器。因此,如果您需要筛选名为
    org.jboss.example.SomeClass
    的日志,则需要创建特定的记录器,并将筛选器添加到该记录器中。在日志管理器中,过滤器现在可以被继承,但是该行为尚未在WildFly中公开。