【问题标题】:Specify location of external logging configuration to specific webapps using Tomcat 8使用 Tomcat 8 将外部日志配置的位置指定到特定的 webapps
【发布时间】:2018-10-04 19:39:02
【问题描述】:

我只能使用 Tomcat 8,我需要在同一个 Tomcat 上部署多个基于 Spring Boot 的 Web 应用程序。

我试图避免使用包含在 war 文件中的自己的日志记录配置来构建工件。

通过使用系统属性 -Dlogging.conf,可以为一个应用程序指定 logback.xml 文件。但是,在 setenv.sh 中添加 -Dlogging.conf 将为部署在 Tomcat 中的每个 webapp 指向相同的日志记录配置。

是否有使用 Tomcat 处理外部日志记录配置的智能方法?

【问题讨论】:

    标签: java tomcat spring-boot logging tomcat8


    【解决方案1】:

    可以使用上下文指定外部日志记录配置。

    有几种定义上下文的方法。以下答案给出了一个很好的总结: https://stackoverflow.com/a/26126563/809043

    我现在为每个 webapp 保存一个上下文文件:

    .../tomcat/conf/Catalina/localhost/APP-NAME.xml 
    

    其中 app-name 是 Web 应用程序的部署名称。

    上下文指向一个包含 logback.xml 配置的资源文件夹。然后,webbapp 可以访问指定的资源文件夹,就好像它位于 /WEB-INF/classes/ 中一样

    下面的 xml 显示了一个上下文文件的示例,该文件可用于包含 webbapp 所需的外部日志记录和其他配置。

    <?xml version="1.0" encoding="UTF-8"?>
    
    <Context path="/APP-NAME">
        <Resources className="org.apache.catalina.webresources.StandardRoot">
            <PreResources  className="org.apache.catalina.webresources.DirResourceSet"
                base="/path/to/logging/config/folder"
                internalPath="/"
                webAppMount="/WEB-INF/classes" />
        </Resources>
    </Context>
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-07-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-03-12
      • 2011-07-11
      • 2015-02-02
      • 1970-01-01
      相关资源
      最近更新 更多