java - 针对不同tomcat war应用的多个logback.xml配置文件

标签 java tomcat classpath war logback

我正在处理部署在 tomcat7 环境中的 2 个 WAR 应用程序(我们称它们为 app1.war 和 app2.war)。 通过 setenv.sh,我将类路径扩展到位于/opt/configurations 中的共享文件夹。

我想以这种方式构建我的配置: 配置/ ├── app1.properties ├── app2.properties ├── logback-app1.xml └── logback-app2.xml

如何让每个应用程序从共享类路径中读取不同的 logback*.xml 文件?换句话说,我如何告诉 app1.war 只读取 logback-app1.xml 和 app2.war 只读取 logback-app2.xml。

最佳答案

这里有这个问题的答案:http://vtanase.blogspot.com/2012/07/how-to-create-different-logback.html

重点是使用在每个 web.xml 中声明的不同 JNDI 条目

<env-entry>
  <env-entry-name>logback/configuration-resource</env-entry-name>
  <env-entry-type>java.lang.String</env-entry-type>
  <env-entry-value>app1/logback.xml</env-entry-value>
</env-entry>

并为 logback 添加一个属性以查看 JNDI:

JAVA_OPTS="$JAVA_OPTS -Dlogback.ContextSelector=JNDI"

如果问题是为每个 war 分离生成的日志文件,还有另一种方法可以通过使用 SiftingAppender 的单个 logback.xml 来实现。 可以找到示例:

关于java - 针对不同tomcat war应用的多个logback.xml配置文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35060404/

相关文章:

java - ubuntu 中 webdriver.jar 的类路径

java - 在 Google App Engine (Java) 上使用键列表获取多个对象的最佳方法是什么?

java - hadoop - 在多个集群上映射减少

java - 如何以编程方式或使用 xml 属性删除回收器分隔符/分隔符

java - 使用 Struts2 xwork 的 Tomcat 内存泄漏

java - 从依赖于 jar 文件的命令行运行 Java 程序?

java - 警报对话框的处理结果如何? (安卓)

spring-mvc - 单击缩略图并在浏览器中显示 3d 模型

java - 无法从 servlet 重定向到 jsp 页面

java - lib 中的 apache-cassandra-x.x.x.jar 在哪里?