1
如何記錄HTTP @GET
和@POST
以分隔文件。基本上我們只是想有單獨的日誌文件來讀取(GET)和寫入(PUT,POST,DELETE)。我和Slf4j
與logback
與嵌入式碼頭。如何記錄HTTP GET和HTTP Post以分隔文件
一個解決方案是在課堂上有兩個記錄器並相應地使用它們。即
private final static Logger log = LoggerFactory.getLogger(Controller.class);
private final static Logger writeLog = LoggerFactory.getLogger("WRITE");
現在按要求使用上面的記錄器,定義Appender
和Logger
。
<appender name="APPENDER_READ"
class="ch.qos.logback.core.rolling.RollingFileAppender">
<file>${HOME}/logs/read.log</file>
<rollingPolicy class="ch.qos.logback.core.rolling.FixedWindowRollingPolicy">
<fileNamePattern>read.%i.log.zip</fileNamePattern>
<minIndex>1</minIndex>
<maxIndex>3</maxIndex>
</rollingPolicy>
<triggeringPolicy
class="ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy">
<maxFileSize>5MB</maxFileSize>
</triggeringPolicy>
<encoder>
<pattern>%date{YYYY-MM-dd HH:mm:ss} %level [%thread] %X{TaskKey} %msg%n</pattern>
</encoder>
</appender>
<appender name="APPENDER_WRITE"
class="ch.qos.logback.core.rolling.RollingFileAppender">
<file>${HOME}/logs/write.log</file>
<rollingPolicy class="ch.qos.logback.core.rolling.FixedWindowRollingPolicy">
<fileNamePattern>logs/write.%i.log.zip</fileNamePattern>
<minIndex>1</minIndex>
<maxIndex>3</maxIndex>
</rollingPolicy>
<triggeringPolicy
class="ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy">
<maxFileSize>5MB</maxFileSize>
</triggeringPolicy>
<encoder>
<pattern>%date{YYYY-MM-dd HH:mm:ss} %level [%thread] %X{TaskKey} %msg%n</pattern>
</encoder>
</appender>
<logger name="WRITE" level="warn" additivity="false">
<appender-ref ref="APPENDER_WRITE" />
</logger>
<root level="WARN">
<appender-ref ref="APPENDER_READ" />
</root>
但我(只要請求進入)尋找一些更好的解決方案,可以從啓動控制器,但是從處理器層面記錄不。
感謝@riskop,這是偉大的工作。感謝你的回答。 –