1
내 로그가 추출되고 파이프되며 elasticsearch에 통합됩니다. 다중 행 이벤트는 추적 및 진단하기가 어렵습니다.한 줄에 예외가 생기는 로그백 구성입니까?
단일 레코드에서 예외 행을 그룹화하기 위해 콜렉터 및 일반 표현식을 사용하는 대신 에 Exception
스택 추적을 한 행에 포함시키는 방법이 있습니까?
내 로그가 추출되고 파이프되며 elasticsearch에 통합됩니다. 다중 행 이벤트는 추적 및 진단하기가 어렵습니다.한 줄에 예외가 생기는 로그백 구성입니까?
단일 레코드에서 예외 행을 그룹화하기 위해 콜렉터 및 일반 표현식을 사용하는 대신 에 Exception
스택 추적을 한 행에 포함시키는 방법이 있습니까?
당신은 %ex
상징적과 같이 대한 logback.xml
의 변환 규칙을 선언 할 수
<?xml version="1.0" encoding="UTF-8" ?>
<configuration>
<conversionRule conversionWord="ex" converterClass="com.foo.CompressedStackTraceConverter" />
...
</configuration>
다음과 같이 CompressedStackTraceConverter
을 선언
import ch.qos.logback.classic.pattern.ThrowableProxyConverter;
import ch.qos.logback.classic.spi.IThrowableProxy;
public class CompressedStackTraceConverter extends ThrowableProxyConverter {
@Override
protected String throwableProxyToString(IThrowableProxy tp) {
String original = super.throwableProxyToString(tp);
// replace the new line characters with something,
// use your own replacement value here
return original.replaceAll("\n", " ~~ ");
}
}
이 custom conversion specifier가 로깅 패턴으로 오래 작동합니다 %ex
기호가 들어 있습니다. 예를 들어,이 같은 패턴은 : 당신의 패턴이 하지 않습니다
<encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
<pattern>%d{yyyy-MM-dd HH:mm:ss}|%-5level|%logger{36}|%msg %ex %n</pattern>
</encoder>
경우는 %ex
상징적 다음 스택 트레이스가 ...
%msg
의 일부 포함
<conversionRule conversionWord="msg" converterClass="com.foo.CompressedStackTraceConverter" />
... 이것은 스택 추적 부분뿐만 아니라 전체 로그 메시지에 CompressedStackTraceConverter
을 적용하면 효과가 있습니다.