Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/templates/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 不同tomcat war应用程序的多个logback.xml配置文件_Java_Tomcat_Classpath_War_Logback - Fatal编程技术网

Java 不同tomcat war应用程序的多个logback.xml配置文件

Java 不同tomcat war应用程序的多个logback.xml配置文件,java,tomcat,classpath,war,logback,Java,Tomcat,Classpath,War,Logback,我正在处理部署在tomcat7环境中的两个WAR应用程序(我们称它们为app1.WAR和app2.WAR)。 通过setenv.sh,我将类路径扩展到位于/opt/configurations中的共享文件夹 我希望以这种方式构建我的配置: 配置/ ├── app1.properties ├── 附录2.2属性 ├── logback-app1.xml └── logback-app2.xml 如何告诉每个应用程序从共享类路径读取不同的logback*.xml文件?换句话说,我如何告诉app1

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

我希望以这种方式构建我的配置:

配置/
├── app1.properties
├── 附录2.2属性
├── logback-app1.xml
└── logback-app2.xml


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

这里有一个问题的答案:

要点是使用每个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>
如果问题是要为每个war分离生成的日志文件,那么还有另一种方法可以通过使用SiftingAppender使用一个logback.xml来实现这一点。 例如:


有没有一种方法可以通过注释来实现这一点?我不知道如何使用注释来配置它,但是如果您想摆脱web.xml,可以尝试java配置,这里有一个示例:。
JAVA_OPTS="$JAVA_OPTS -Dlogback.ContextSelector=JNDI"