我正在尝试更改代码中的logback输出。 我开发了一个Web服务,我想记录服务从请求中收到的一些头信息。
我有这个配置:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE XML>
<configuration debug="true" scan="true" scanPeriod="1 hour">
<!-- sends logs to logback-beagle -->
<consolePlugin />
<timestamp key="freqLogFile" datePattern="yyyyMMdd" />
<appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
<layout class="ch.qos.logback.classic.PatternLayout">
<Pattern>%d [%thread] %level %class\(%method\) %line - %m%n</Pattern>
</layout>
</appender>
<appender name="FILE" class="ch.qos.logback.core.FileAppender">
<layout class="ch.qos.logback.classic.PatternLayout">
<Pattern>%d [%thread] %level %class\(%method\) %line - %m%n</Pattern>
</layout>
<file>logs/webservice.logs_${freqLogFile}.log</file>
</appender>
</configuration>
有没有办法更改模式以包含这些标题信息?
答案 0 :(得分:2)
您可以将这些标题放入MDC,然后在模式中使用它们。
在您的服务中:
MDC.put("header1", header1);
MDC.put("header2", header2);
在你的logback配置中:
<Pattern>%d [%thread] %level %class\(%method\) %line - %X{header1} %X{header2} %m%n</Pattern>
有关MDC及其使用方法的更多信息,请参阅documentation。