我有Jboss 7.1的Enterprise Java Project。
我为我的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");
}
}
答案 0 :(得分:1)
log4j不运送log4j罐吗?使用您正在使用的standalone.xml或配置文件进行配置检查。
搜索记录子系统,
e.g。
<subsystem xmlns="urn:jboss:domain:logging:1.1">
将根记录器级别名称设置为FINER,如下所示,重新运行并检查:
<root-logger>
<level name="DEBUG"/>
<handlers>
<handler name="CONSOLE"/>
<handler name="FILE"/>
</handlers>
</root-logger>
如何添加appender?
假设您正在使用
初始化包x.y.z中类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>
取决于您想要的粒度级别。
答案 1 :(得分:0)
Jboss拥有自己的绑定程序,无法覆盖运行时,请确保已添加具有适当调试级别的log4j.properties。尝试在其中使用fileappender,以便您了解Jboss是使用您的log4j绑定器还是它自己的。