java - websphere liberty - 无法使用 slf4j 或 log4j 生成应用程序特定的日志记录

标签 java log4j slf4j websphere-liberty

如何在 IBM Webspare Liberty 服务器中生成应用程序特定日志,我使用 SLF4j,message.log 和 console.log 更新正常,但未生成应用程序特定日志。 如果可以使用 Log4j 解决日志记录问题,那么也对我有用。

尝试在静态 block 中显式加载 log4j2 文件并将其放置在资源文件夹中,但都不起作用。

能够查看 liberty 服务器日志,但根本不生成应用程序日志。

最佳答案

看不到 log4j 日志的根本原因通常是因为类加载器没有选取 log4j2 配置文件。这里有几个选项可以解决您的问题。

  1. 复制到 Liberty 共享库目录。它可以是以下之一:
    • ${shared.config.dir}/lib/global
    • ${server.config.dir}/lib/global

您可以引用 IBM 网站来查找 Liberty 安装中 ${shared.config.dir} 和 ${server.config.dir} 的确切位置 at here

  • 或者,您可以将 log4j 配置文件放置在文件系统上的任何位置,并将以下行添加到 server.xml
  •     <library id="log4jConfig">
              <folder dir="/{directory containning log4j config file}" scanInterval="5s" />
        </library>
    
        <webApplication id="myapp" location="myapp.war" name="My App"/>
              <classloader commonLibraryRef="log4jConfig"/>
        </webApplication>
    
  • 在 jvm.options 文件中设置为 JVM 参数 -Dlog4j.configurationFile=文件:/path/to/log4j2.xml

  • 将其打包到 src/main/resources 下的 Maven 应用程序 war 文件中

  • 关于java - websphere liberty - 无法使用 slf4j 或 log4j 生成应用程序特定的日志记录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57477654/

    相关文章:

    java - 如何创建与旧窗口不同步的 jEdit "New View"

    java - 如何使用二维数组(Java)返回时间?

    hibernate - Tomcat 错误 [严重 : Error listenerStart] on accessing web application with Spring/Log4j/Hibernate/Ant?

    java - Log4j StringMatchFilter 和 denyAll 过滤器属性配置

    java - 如何用 Java 编写这个公式?

    java - 如何在 WAR 中打包文档工件

    java - 如何在运行时选择 log4j2 Appender

    java - 使用 EJB 3.0 初始化 log4j 的最佳方法是什么?

    tomcat - 如何将 Jenkins 与现代日志记录框架一起使用?

    java - Spring Boot 中 logback 中的 OWSAP ESAPI 日志记录支持