更改logback输出

时间:2014-02-13 10:40:12

标签: slf4j logback java.util.logging

我正在尝试更改代码中的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>

有没有办法更改模式以包含这些标题信息?

1 个答案:

答案 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