繁体   English   中英

Jboss 7.1 log4j服装日志记录过滤器或异常

[英]Jboss 7.1 log4j costume logging filter or exception

让我们开始编码:

@Startup 
@Singleton
import org.apache.log4j.Logger;
public class MyClass{

    public static final Logger logger = Logger.getLogger(MyClass.class.getSimpleName());

    @PostConstruct
    private void invoke() {
        LOG.info("INFO");
        LOG.warn("WARN");
        LOG.error("ERROR");
        LOG.fatal("FATAL");
        LOG.debug("DEBUG");
        LOG.trace("TRACE");
        }
}

如果我改变了:

     <root-logger> <level name="INFO"/>...</root-logger> to   "DEBUG" instead of "INFO"

我有调试控制台。 一切正常。

现在我想改变一些东西

我通常希望root-logger为“ INFO”。 但使用XYZ封装则为“ DEBUG”;

那样的东西,但是不起作用:

<logger category="XXX.YYY.ZZZ" use-parent-handlers="false">
            <level name="DEBUG"/>
            </logger>
            <root-logger>
                <level name="INFO"/>
                <handlers>
                    <handler name="CONSOLE"/>
                    <handler name="FILE"/>
                </handlers>
            </root-logger>

换句话说。 我只想调试XXX.YYY.ZZZ包。 而不是其他软件包(其他软件包为“ INFO”)。 可能是我需要一些过滤器或例外。

该XML 无效,因为 log4j的层次结构顺序为:

OFF       <------ PERMITED
FATAL     <------ PERMITED
ERROR     <------ PERMITED
WARN      <------ PERMITED
INFO      <-----  COSTUME LOGGING PERMITTED UP TO INFO (if root-logger is "INFO)
DEBUG
TRACE
ALL

如果我的root记录器是“ INFO”,则仅具有创建服装记录到具有UP TO INFO层次结构的当前程序包的权限

但是我需要一些例外或类似的东西。 我不需要任何XML配置文件或属性文件。 我只需要更改standlone.xml

您将use-parent-handlersfalse ,但记录器上未安装任何处理程序。 您需要将该值更改为true或向记录器添加处理程序。

use-parent-handlers为false只会使用附加到特定记录器的处理程序。 由于您没有附加任何处理程序,因此没有用于将输出记录到的处理程序。

在您的示例中,您使用的是类的简单名称,这意味着类别为MyClass而不是包名称。

尝试类似:

<logger category="MyClass">
    <level name="DEBUG"/>
</logger>

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM