通过glassfish + log4j控制自定义记录器

时间:2014-12-08 22:42:29

标签: java logging glassfish log4j slf4j

我有一个使用log4j的网络应用。我在/WEB-INF/classes/log4j.properties文件中配置了一个自定义记录器,如下所示:

log4j.rootLogger=ERROR, CNSL

log4j.appender.CNSL=org.apache.log4j.ConsoleAppender
log4j.appender.CNSL.Target=System.out
log4j.appender.CNSL.layout=org.apache.log4j.PatternLayout
log4j.appender.CNSL.layout.ConversionPattern=%d{HH:mm:ss:SSS} %p %c (%F:%L) - %m%n


log4j.logger.my.app = INFO

日志消息按预期写入server.log但我正在尝试通过glassfish服务器找到控制自定义记录器日志级别的方法。

我尝试使用命令在glassfish中创建记录器:

asadmin set-log-level my.app.level=WARNING 

但是,即使通过asadmin命令将记录器设置为WARNING,仍会记录所有INFO消息。有没有办法从glassfish记录器控制log4j.properties中配置的自定义记录器的记录器级别?

2 个答案:

答案 0 :(得分:0)

asadmin set-log-level命令在您想要控制log4j日志记录时控制glassfish日志记录。更好的选择是拥有一个JMX Mbean,以便您可以在运行时动态控制日志级别。有few links可以提供帮助。

答案 1 :(得分:0)

如果在Web应用程序中使用java.util.logging作为基础日志记录框架,则可以通过Glassfish中的控制台控制日志级别。

您还可以在代码中使用SLF4J,并使用java.util.logging作为基础日志框架(通过slf4j-jdk14.jar)。