java - 文件附加器中 web.xml 的 logback 值

标签 java glassfish logback

我正在为 Glassfish 服务器开发 Java Web 应用程序。我在设置文件附加器的路径时遇到问题。我想使用 web.xml 中定义的变量。

Web.xml:

<context-param>
    <param-name>webAppRootKey</param-name>
    <param-value>app.myApp-client.home</param-value>
</context-param>

Logback.xml(在 src/main/resurces 中)

    <appender name="FILE" class="ch.qos.logback.core.FileAppender">        
    <file>${app.myApp-client.home}/WEB-INF/app-log/client.log</file>        
    <encoder>
        <pattern>%date %level [%file:%line] %msg%n</pattern>
    </encoder>
</appender>

在 Glassfish 日志文件上部署我的应用程序后,名称为

/app.myApp-client.home_IS_UNDEFINED/WEB-INF/app-log/client.log

已创建。为什么参数 app.myApp-client.home 未定义?将应用程序路径放置到文件附加器是否有更好的选择?

谢谢。

最佳答案

可以将变量设置为值 obtained via JNDI 。在你的情况下,你会写:

  <insertFromJNDI env-entry-name="java:comp/env/webAppRootKey" as="webAppRootKey" />

  <appender name="FILE" class="ch.qos.logback.core.FileAppender">        
    <file>${webAppRootKey}/WEB-INF/app-log/client.log</file>        
    <encoder>
      <pattern>%date %level [%file:%line] %msg%n</pattern>
    </encoder>
  </appender>

以上应该可以很好地工作。此外,您可能还会发现 set a default value 很有用。对于${webAppRootKey}

关于java - 文件附加器中 web.xml 的 logback 值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16274692/

相关文章:

java - 如何在Kotlin中将泛型类映射到相同类的泛型数组

java - 我可以使用多个发布者和单个接收者保留 OpenMQ 上的消息顺序吗?

tomcat - 在 linux Tomcat 7 安装上我的 webapp 的日志文件在哪里?

spring-boot - 如何在发现选项卡中获取日志中提供的字段的字段

java - 使用java异常进行条件检查

Java安装错误: INSTALL_FAILED_MISSING_SHARED_LIBRARY maps

java - CompareTo 不起作用 - 测试两个字符串的所有组合

java - 后端的 CDI?

hibernate - GlassFishV3 Hibernate 库问题

logging - 如何为 slf4j 标记配置 logback.xml 文件