我有一个使用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中配置的自定义记录器的记录器级别?
答案 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)。