如何从root-logger创建不同级别的Wildfly 9日志类别?

时间:2018-01-22 15:34:33

标签: logging wildfly-9

我在这里阅读了一些关于类似问题的帖子,但没有人能够帮助我。 我正在使用Wildfly 9.0.2,并希望将其配置为像这样记录:

my.project.category = INFO
my.especial.project.category = DEBUG
其余= WARN

我在尝试什么,没有成功:

<subsystem xmlns="urn:jboss:domain:logging:3.0">
    <console-handler name="MY_DEBUGGER_HANDLER">
        <level name="DEBUG"/>
        <formatter>
            <named-formatter name="COLOR-PATTERN"/>
        </formatter>
    </console-handler>
    <console-handler name="MY_INFO_HANDLER">
        <level name="INFO"/>
        <formatter>
            <named-formatter name="COLOR-PATTERN"/>
        </formatter>
    </console-handler>
    <console-handler name="CONSOLE">
        <level name="WARN"/>
        <formatter>
            <named-formatter name="COLOR-PATTERN"/>
        </formatter>
    </console-handler>
    <logger category="my.project.category" use-parent-handlers="false">
        <level name="INFO"/>
        <handlers>
            <handler name="MY_INFO_HANDLER"/>
        </handlers>
    </logger>
    <logger category="my.especial.project.category" use-parent-handlers="false">
        <level name="DEBUG"/>
        <handlers>
            <handler name="MY_DEBUGGER_HANDLER"/>
        </handlers>
    </logger>                        
    <root-logger>
        <level name="DEBUG"/>
        <handlers>                    
            <handler name="CONSOLE"/>
        </handlers>
    </root-logger>
    <formatter name="PATTERN">
        <pattern-formatter pattern="%d{yyyy-MM-dd HH:mm:ss,SSS} %-5p [%c] (%t) %s%e%n"/>
    </formatter>
    <formatter name="COLOR-PATTERN">
        <pattern-formatter pattern="%K{level}%d{HH:mm:ss,SSS} %-5p [%c] (%t) %s%e%n"/>
    </formatter>
</subsystem>

问题是Wildfly拒绝记录我的类别,除非我更改CONSOLE处理程序级别或将我的句柄添加到root-logger,后者开始记录该级别的所有类别。

你能取悦,在这里投光并帮助我吗? 谢谢!

1 个答案:

答案 0 :(得分:0)

处理程序本身应设置为您想要记录的最低级别。例如,如果您希望查看CONSOLE消息,则需要将处理程序级别设置为至少DEBUG,而在默认DEBUG处理程序上。

在您的上述配置中,您已获得root-loggerDEBUG,这意味着任何未定义的类别都会记录调试消息。通常,您不希望将根记录器级别设置为低,因为它会对性能产生影响。

根据您的要求并采用默认配置,而不是上面的配置,以下CLI命令可以为您提供您正在寻找的配置。请注意,创建多个控制台处理程序并不是必需的,也不是真正的建议。允许记录器控制水平是最好的。

my.project.category = INFO my.especial.project.category = DEBUG 其余= WARN

/subsystem=logging/console-handler=CONSOLE:write-attribute(name=level, value=DEBUG)
/subsystem=logging/logger=my.project.category:add(level=INFO)
/subsystem=logging/logger=my.especial.project.category:add(level=DEBUG)
/subsystem=logging/root-logger=ROOT:write-attribute(name=level, value=WARN)

以上操作将允许控制台处理程序记录任何消息DEBUG或更高版本。您的my.project.category会在INFO登录,而您的my.especial.project.category会在DEBUG登录。所有其他未定义的记录器只会记录WARN或更高。