【问题标题】:Can Per-deployment Logging work together with Logging sub system for Jboss EAP 6.4?每次部署日志可以与 Jboss EAP 6.4 的日志子系统一起使用吗?
【发布时间】:2017-05-20 14:38:57
【问题描述】:

我在独立的 jboss 服务器上运行了多个战争。我在standalone.xml 中配置了日志子系统。我提到 this redhat link on Add Per-deployment Logging to an Application 为其中一个应用创建特定的日志处理程序。

我在 META-INF 文件夹下的 app war 中创建了 logging.properties 文件,内容如下

loggers=com.company

logger.com.company.level=TRACE
logger.com.company.useParentHandlers=true
logger.com.company.handlers=TESTFILE

# A handler configuration
handler.TESTFILE=org.jboss.logmanager.handlers.FileHandler
handler.TESTFILE.level=TRACE
handler.TESTFILE.formatter=PATTERN1
handler.TESTFILE.properties=append,autoFlush,enabled,suffix,fileName
handler.TESTFILE.constructorProperties=fileName,append
handler.TESTFILE.append=true
handler.TESTFILE.autoFlush=true
handler.TESTFILE.enabled=true
handler.TESTFILE.fileName=${jboss.server.log.dir}/app.log

# The formatter to use
formatter.PATTERN1=org.jboss.logmanager.formatters.PatternFormatter
formatter.PATTERN1.properties=pattern
formatter.PATTERN1.constructorProperties=pattern
formatter.PATTERN1.pattern=%d %-5p %c: %m%n

我部署了应用程序,但除了在standalone.xml 日志记录子系统中配置的内容外,它没有做任何事情。这个设置应该在 EAP 6.4 上工作吗?

【问题讨论】:

    标签: logging jboss wildfly redhat jboss-eap-6


    【解决方案1】:

    是的,这应该可以在 JBoss EAP 6.4 中使用。您可能想尝试将 logging.properties 文件移动到 WAR/WEB-INF/classes。可能存在无法查看WAR/WEB-INF 目录的错误。

    如果这不起作用,您还可以为 org.jboss.as.logging 打开跟踪日志记录,这应该会显示在您的部署中找到的 logging.properties 文件。

    以下 CLI 命令将启用跟踪日志记录,以查看日志记录子系统正在执行的操作的详细信息。

    /subsystem=logging/logger=org.jboss.as.logging:add(level=TRACE)
    

    如果您想在控制台上看到这些日志消息,您需要为控制台工具启用跟踪日志记录。

    /subsystem=logging/console-handler=CONSOLE:write-attribute(name=level, value=TRACE)
    

    【讨论】:

    • @james-r-perkins,感谢您的回复。我试过你的建议。我将文件移到 /classes 下,现在它正在被拾取。我在控制台上看到“14:10:22,075 DEBUG [org.jboss.as.logging](MSC 服务线程 1-2)找到日志配置文件:“/C:/Java/jboss/bin/ ....” .但是日志仍然没有按预期工作。现在com.company没有任何记录在任何地方。如果我删除属性文件,它会在控制台和server.log上显示INFO消息。我还注意到com.company没有出现在 loggers=xx.xx.xx .. 行中生成的 logging.properties。
    • 我忘了说应用程序使用的是 slf4j 而不是 jboss logger
    • 没关系。发布的logging.properies 应该可以正常工作。您的记录器是如何定义的?你会做类似 `LoggerFactory.getLogger("com.company") 的事情吗?
    • 包 com.company.app.interceptor;导入 org.slf4j.Logger;导入 org.slf4j.LoggerFactory;公共类....私有静态最终记录器 logger = LoggerFactory.getLogger(AppIntreceptor.class); public boolean preHandle(.....){ logger.debug("请求定向到" + request.getParameter("Program")); }
    • 我发现即使我在 classes 文件夹下放置了一个空的 logging.properties 文件,该特定应用程序的日志记录也会停止工作
    【解决方案2】:

    非常感谢@James R Perkins 的回答和 cmets

    这是最终的配置

    loggers=com.company.a,com.company.b.interceptor.app
    
    logger.level=INFO
    logger.handlers=APPLOG
    
    logger.com.company.a.level=INFO
    logger.com.company.a.useParentHandlers=false
    logger.com.company.a.handlers=APPLOG
    
    logger.com.company.b.interceptor.app.level=INFO
    logger.com.company.b.interceptor.app.useParentHandlers=false
    logger.com.company.b.interceptor.app.handlers=INTERCEPTLOG
    
    # A handler configuration
    handler.APPLOG=org.jboss.logmanager.handlers.PeriodicRotatingFileHandler
    handler.APPLOG.level=INFO
    handler.APPLOG.formatter=PATTERN
    handler.APPLOG.properties=append,autoFlush,enabled,suffix,fileName
    handler.APPLOG.constructorProperties=fileName,append
    handler.APPLOG.append=true
    handler.APPLOG.autoFlush=true
    handler.APPLOG.enabled=true
    handler.APPLOG.suffix=.yyyy-MM-dd
    handler.APPLOG.fileName=${jboss.server.log.dir}/APPLOG.log
    
    handler.INTERCEPTLOG=org.jboss.logmanager.handlers.PeriodicRotatingFileHandler
    handler.INTERCEPTLOG.level=INFO
    handler.INTERCEPTLOG.formatter=PATTERN
    handler.INTERCEPTLOG.properties=append,autoFlush,enabled,suffix,fileName
    handler.INTERCEPTLOG.constructorProperties=fileName,append
    handler.INTERCEPTLOG.append=true
    handler.INTERCEPTLOG.autoFlush=true
    handler.INTERCEPTLOG.enabled=true
    handler.INTERCEPTLOG.suffix=.yyyy-MM-dd
    handler.INTERCEPTLOG.fileName=${jboss.server.log.dir}/INTERCEPTLOG.log
    
    # The formatter to use
    formatter.PATTERN=org.jboss.logmanager.formatters.PatternFormatter
    formatter.PATTERN.properties=pattern
    formatter.PATTERN.constructorProperties=pattern
    formatter.PATTERN.pattern=%d %-5p %c: %m%n
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2014-12-25
      • 1970-01-01
      • 1970-01-01
      • 2016-06-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多