【问题标题】:Log4j2 File location not picked up in Weblogic 12cWeblogic 12c 中未拾取 Log4j2 文件位置
【发布时间】:2016-11-03 03:30:38
【问题描述】:

我正在 Weblogic 12c 上部署 EAR 应用程序。我正在寻找配置 log4j2 并将以下内容放入 web.xml(Web 项目的)中不起作用(应用程序未拾取文件)。

<context-param>
<param-name>log4jConfiguration</param-name>
<param-value>file:///webapps/apps/appName/log4j2.xml</param-value>
</context-param>

我得到了错误

ERROR StatusLogger No log4j2 configuration file found. Using default configuration: logging only errors to the console.

如果我在 weblogic 启动脚本 (-Dlog4j.configurationFile=path/to/log4j2.xml) 中提到 log4j2.xml 文件的路径,它会选择 log4j 文件。我怎样才能让&lt;context-param&gt; 设置起作用?我在 Eclipse (STS) 中运行 weblogic。

【问题讨论】:

    标签: java log4j2 weblogic12c


    【解决方案1】:

    只是再次检查:您是否已将 log4j-web 依赖项添加到类路径中?没有它,上下文参数将不起作用。

    另外,请注意,指定的 file: 路径将相对于 Web 上下文根进行解析。本质上它将返回ServletContext.getResource(path). 的结果

    如果您设置系统属性-Dorg.apache.logging.log4j.simplelog.StatusLogger.level=TRACE,您可能会看到发生了什么问题。这会将内部 Log4j2 日志打印到控制台。

    【讨论】:

    • 我确实有 log4j-web 依赖项。我已将配置更改为使用 -Dlog4j.configurationFile 参数。我不明白您所说的“文件”路径将相对于上下文根进行解析的部分。我有其他项目(在 tomcat 上),我可以在其中提及驱动器上的任何位置,它会获取我的 log4j 文件。
    • 我的意思是web.xml中配置的contex-value的值:你提到了&lt;param-value&gt;file:///webapps/apps/appName/log4j2.xml&lt;/param-value&gt;。该路径被解释为相对于 Web 应用根目录。
    • 这是很好的信息。我不知道它与上下文根相关。可能这就是为什么我的配置没有被选中的原因。我会接受您的回答,因为它解释了为什么我的配置文件没有被拾取。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-06-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多