Java tomcat override logging.properties包含在共享库中

Java tomcat override logging.properties包含在共享库中,java,tomcat,logging,Java,Tomcat,Logging,我在tomcat6中部署我的应用程序 我的war文件中的一个共享JAR具有覆盖 tomcat提供的日志记录 有没有办法通过自定义logging.properties文件覆盖共享jar中的logging.properties文件 更新: 我在jvmstart命令行中看到了这条语句 -Djava.util.logging.config.file=/usr/local/tomcat/conf/logging.properties 但它似乎没有覆盖共享jar文件中包含的文件 根据文档,通过以下方式配置日

我在tomcat6中部署我的应用程序

我的war文件中的一个共享JAR具有覆盖 tomcat提供的日志记录

有没有办法通过自定义logging.properties文件覆盖共享jar中的logging.properties文件

更新:

我在jvmstart命令行中看到了这条语句

-Djava.util.logging.config.file=/usr/local/tomcat/conf/logging.properties

但它似乎没有覆盖共享jar文件中包含的文件

根据文档,通过以下方式配置日志记录:

  • 全球范围内。这通常在${catalina.base}/conf/logging.properties文件中完成。该文件由启动脚本设置的java.util.logging.config.file系统属性指定。如果不可读或未配置,则默认情况下使用JRE中的${java.home}/lib/logging.properties文件
  • 在web应用程序中。该文件将是WEB-INF/classes/logging.properties
如果共享库将logging.properties放在WEB-INF/classes中,则必须将其删除。如果没有放在那里,则共享库包含正在调用的代码。如果是这种情况,您应该能够在加载共享库后调用
LogManager.getLogManager().reset()
。这将强制配置回到Tomcat文档中描述的默认值。

根据文档,日志记录是通过以下方式配置的:

  • 全球范围内。这通常在${catalina.base}/conf/logging.properties文件中完成。该文件由启动脚本设置的java.util.logging.config.file系统属性指定。如果不可读或未配置,则默认情况下使用JRE中的${java.home}/lib/logging.properties文件
  • 在web应用程序中。该文件将是WEB-INF/classes/logging.properties

如果共享库将logging.properties放在WEB-INF/classes中,则必须将其删除。如果没有放在那里,则共享库包含正在调用的代码。如果是这种情况,您应该能够在加载共享库后调用
LogManager.getLogManager().reset()
。这将迫使配置恢复到Tomcat文档中描述的默认值。

您希望从Tomcat或您自己的应用程序类中记录内容吗?如果不需要,请删除shared library logging.properties文件。共享库作为maven依赖项提供。我不想仅仅为了删除logging.properties而创建它的另一个版本。我认为必须有更好的覆盖方法。您是想从tomcat还是自己的应用程序类中记录内容?如果不需要,请删除shared library logging.properties文件。共享库作为maven依赖项提供。我不想仅仅为了删除logging.properties而创建它的另一个版本。我认为必须有一种更好的方法来压倒一切。