메시지의 logback % replace 함수가 regex replacment와 함께 인쇄되면 각 로그 문에 대한 정규식이 컴파일됩니다.Logback % replace는 각 log 문에 대한 정규식을 컴파일합니까?
% replace는 regex 사용으로 많은 CPU를 사용합니다.
메시지의 logback % replace 함수가 regex replacment와 함께 인쇄되면 각 로그 문에 대한 정규식이 컴파일됩니다.Logback % replace는 각 log 문에 대한 정규식을 컴파일합니까?
% replace는 regex 사용으로 많은 CPU를 사용합니다.
%replace
을 사용하면 Logback에서 ch.qos.logback.core.pattern.ReplacingCompositeConverter
을 발생시킵니다. 이 변환기는 패턴 레이아웃이 시작될 때, 즉 Logback이 자체적으로 구성 될 때 시작된 및으로 인스턴스화됩니다.
public void start() {
...
regex = optionList.get(0);
pattern = Pattern.compile(regex);
replacement = optionList.get(1);
super.start();
}
그리고 Logback은 ReplacingCompositeConverter.transform()
되는 %replace
, 위임을 포함하는 패턴을 사용 로그 엔트리를 발견 할 때마다이 패턴을 적용 :
protected String transform(E event, String in) {
...
return pattern.matcher(in).replaceAll(replacement);
}
가
ReplacingCompositeConverter.start()
방법으로 패턴을 컴파일 따라서 Logback은 이 아니며은 "each log statement printed"에 대한 패턴을 %replace
으로 컴파일합니다.
'Deleting to ReplacingCompositeConverter.start()', 확실히'ReplacingCompositeConverter.transform() '에 위임합니까? – ptomli
D' 오 복사 - 파스타 오류. 나는 올바른 메소드 문장을 포함하고 있지만 그것을'start()'메소드라고 부른다. 그 점을 알려 주셔서 감사합니다. – glytching