我有一个打包为war文件的Web应用程序,它使用slf4j作为日志记录。它取决于slf4j-api-*.jar
,但不包含一个内部。我想将此战争部署到Jetty并配置Web容器端的日志记录
我已将slf4j-api-*.jar
,logback-classic-*.jar
和logback-core-*.jar
添加到${jetty.home}/lib/ext
,将logback.xml
添加到${jetty.home}/resources
,我将其配置为将日志写入{{1} }}。
这非常有效,但我已将所有内容记录到${jetty.home}/logs/jetty.log
。我想将每个war日志和jetty自己的日志写入单独的文件。
答案 0 :(得分:1)
在文档Sifting Logs with LogBack中,该示例使用slf4j MDC将“host”设置为拆分。您可以使用自己的MDCHandler
来使用任何拆分选项由于密钥是使用MDCHandler,因此它必须能够挖掘传入Request对象中存在的任何信息。 (原因是MDCHandler不是webapp本身的servlet范围和上下文的参与者,因为它位于它前面)
一种技巧是使用request.getContextPath()拆分您的webapp部署到的任何上下文。