Wildfly 8.1 日志系统

Wildfly 8.1 Log System

我正在尝试使用 Wildfly 8.1 最终日志系统类别制作我的 Web 服务应用程序日志。

我的应用声明

private static final Logger LOGGER = Logger.getLogger("myapp");

它调用了

的部分代码
LOGGER.debug("something");

使用下面的 log4j 属性 文件定义,它的行为符合预期。问题是当我访问 Wildfly 控制台 (http://localhost:9990/console/App.html#logging) 并将名为 "myapp" 的日志类别从 INFO 更新为 DEBUG 时。之后,我调用调用指令 LOGGER.debug("something") 的 Web 服务;里面有代码。

预期的行为是显示写入我的日志文件的 "something" 消息,但它并没有发生,因为它的行为仅服从下面提供的 log4j 属性 文件。

如何解决这个问题?

#------------------------------------------------------------------------------
#log4j.rootLogger=DEBUG, stdout
log4j.logger.org.hibernate=INFO, stdout, myapp
log4j.logger.org.hibernate.SQL=INFO, stdout, myapp
log4j.logger.org.hibernate.type.descriptor.sql=ALL, stdout, myapp
log4j.logger.myappaudit=INFO, myappaudit
log4j.logger.myapp=INFO, stdout, myapp
log4j.logger.performance=INFO, myapp

#
#  default Appender 
#------------------------------------------------------------------------------
log4j.appender.stdout = org.apache.log4j.ConsoleAppender
log4j.appender.stdout.Target = System.out
log4j.appender.stdout.layout = org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern = %d{yyyy-MM-dd HH:mm:ss.SSS} %c{1} [%p] %C{1}.%M - %m%n

#
#  Appender for myappaudit
#------------------------------------------------------------------------------
log4j.appender.myappaudit = org.apache.log4j.DailyRollingFileAppender
log4j.appender.myappaudit.File = ${jboss.server.log.dir}/logs/myappaudit.log
log4j.appender.myappaudit.Append = true
log4j.appender.myappaudit.DatePattern = '.'yyy-MM-dd
log4j.appender.myappaudit.layout = org.apache.log4j.PatternLayout
log4j.appender.myappaudit.layout.ConversionPattern =  %d{yyyy-MM-dd HH:mm:ss.SSS} %c{1} [%p] %m%n

#
#  Appender for application
#------------------------------------------------------------------------------
log4j.appender.myapp = org.apache.log4j.DailyRollingFileAppender
log4j.appender.myapp.File = ${jboss.server.log.dir}/logs/console.log
log4j.appender.myapp.Append = true
log4j.appender.myapp.DatePattern = '.'yyy-MM-dd
log4j.appender.myapp.layout = org.apache.log4j.PatternLayout
log4j.appender.myapp.layout.ConversionPattern = %d{yyyy-MM-dd HH:mm:ss.SSS} %c{1} [%p] %m%n

#Spring logs
log4j.logger.org.springframework=DEBUG
log4j.logger.org.springframework.security=DEBUG
log4j.logger.org.springframework.ws=DEBUG

#Spring Transaction Logs
log4j.logger.org.springframework.orm.jpa=DEBUG
log4j.logger.org.springframework.transaction=DEBUG

#Spring Async Logs
log4j.logger.org.springframework.scheduling=ERROR

那么,明确地说,您是否将 log4j.properties 文件与您的应用程序打包在一起?它被正确尊重,但您希望使用 jboss 控制台在运行时修改日志记录级别?

您将无法在控制台中使用记录器选项。原因是,如果您包含 log4j 配置,则会为该部署创建一个完全隔离的日志记录实例。如果您想使用 jboss 的工具,您必须删除您的日志记录配置并在独立或域 xml 中定义。或者,您可以创建自己的 servlet 或 mbean 作为部署的一部分,以对日志记录级别或任何其他更改进行运行时调整,例如添加或删除 appenders