繁体   English   中英

部署到Jetty的每场战争的单独日志文件

[英]Separate log file for each war deployed to Jetty

我有一个打包为war文件的Web应用程序,它使用slf4j作为日志记录外观。 它取决于slf4j-api-*.jar ,但其中不包含一个。 我想将这场战争部署到Jetty并在Web容器端配置日志记录。
我已将slf4j-api-*.jarlogback-classic-*.jarlogback-core-*.jar logback.xml ${jetty.home}/lib/ext ,将logback.xml ${jetty.home}/resources ,我将其配置为将日志写入${jetty.home}/logs/jetty.log
这可以正常工作,但是我已将所有内容记录到jetty.log 我想将每个战争日志和码头自己的日志写到单独的文件中。

  1. 日志记录框架无关紧要,如果有帮助,我可以使用与logback不同的方法。
  2. 我已经阅读了logback文档中的“日志记录分隔”一章。 这迫使我更改了web.xml并向战争添加了logback jar,所以这不是我想要的。
  3. 我已经阅读了“ Jetty / Tutorial /使用Logback筛选日志”。 它是关于按hotstname而不是按应用程序进行分隔,因此也无济于事。

在文档“ 使用LogBack筛选日志”中 ,该示例使用slf4j MDC将“主机”设置为拆分。 您可以将任何想要的拆分选项与自己的MDCHandler一起使用

由于关键是使用MDCHandler,因此它必须能够挖掘传入的Request对象中存在的任何信息。 (其原因是,MDCHandler不在webapp本身的servlet范围和上下文的参与者,因为它位于它的前面)

一种技术是使用request.getContextPath()在已部署Web应用程序的任何上下文上进行拆分。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM