java - websphere liberty - 无法使用 slf4j 或 log4j 生成特定于应用程序的日志记录
问题描述
如何在 IBM Websphare Liberty 服务器中生成特定于应用程序的日志,我正在使用 SLF4j,message.log 和 console.log 更新正常,但未生成应用程序特定日志。如果可以使用 Log4j 解决日志记录问题,那么也对我有用。
尝试在静态块中显式加载 log4j2 文件并将其放置在资源文件夹中,但均无效。
能够看到自由服务器日志,但根本没有生成应用程序日志。
解决方案
看不到 log4j 日志的根本原因通常是因为类加载器没有拾取 log4j2 配置文件。您有几个选项可以解决您的问题。
- 复制到 Liberty 共享库目录。它可以是以下之一:
- ${shared.config.dir}/lib/global
- ${server.config.dir}/lib/global
您可以参考 IBM 网站以 在此处找到您的 Liberty 安装中 ${shared.config.dir} 和 ${server.config.dir} 的确切位置
- 或者,您可以将 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 文件 -Dlog4j.configurationFile=file:/path/to/log4j2.xml 中设置为 JVM 参数
将其打包到 src/main/resources 下的 maven 应用程序 war 文件中
推荐阅读
- latex - Latex biblatex:参考书目标题没有换行,而是溢出[]
- swift - 为什么将 void 分配给局部变量
- python - Discord Bot 无法离开语音通道“NoneType”对象没有属性“断开连接”
- mp4 - 非 IDR IFrame 的意义是什么?
- javascript - 未定义 member.voiceChannel
- html - 如何在固定导航中放置标题?
- watchkit - 如何解除使用 contextForSegue 呈现的 WKInterfaceController?
- php - 配置 PhpStorm、Xdebug 和 Laravel
- javascript - 在 Flask 应用程序中将变量从后端传递到前端
- javascript - 不允许 2 个视频同时播放