1

我有 Jboss 7.1 的企业 Java 项目。

我为我的 EAR 添加了 log4j。

<dependency>
    <groupId>log4j</groupId>
    <artifactId>log4j</artifactId>
     <version>1.2.17</version>
</dependency>

现在,logger.error() 运行良好。但 logger.debug 不工作。您对此有何看法?...如何启用调试?

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

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

    @PostConstruct
    private void invoke() {
           logger.error("error ");
       logger.debug("debug");
        }
}
4

2 回答 2

1

log4j 不运送 log4j 罐子吗?使用您正在使用的standalone.xml 或配置文件进行配置检查。

搜索日志记录子系统,

例如

<subsystem xmlns="urn:jboss:domain:logging:1.1">

将 root-logger 级别名称设置为 FINER,如下所示,重新运行并检查:

        <root-logger>
            <level name="DEBUG"/>
            <handlers>
                <handler name="CONSOLE"/>
                <handler name="FILE"/>
            </handlers>
        </root-logger>

如何添加附加程序?

假设您正在为包 xyz 中的 ABC 类初始化 Logger 对象,使用,

Logger LOG = LoggerFactory.getLogger(ABC.class);

所以同样的 appender 看起来像这样:

        <logger category="x.y.z">
            <level name="DEBUG"/>
        </logger>

或者

        <logger category="x.y">
            <level name="DEBUG"/>
        </logger>

或者

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

取决于您想要的粒度级别。

于 2013-04-15T10:59:35.620 回答
0

Jboss 有它自己的绑定器,它不能被运行时覆盖,请确保您添加了具有适当调试级别的 log4j.properties。尝试在其中使用 fileappender 以便您了解 Jboss 是使用您的 log4j binder 还是它自己的。

于 2013-04-15T11:00:21.577 回答