Log4j 1.2.15를 사용해야한다는 말을 앞에 쓰겠습니다. 안타깝게도 업그레이드를 제안하지 마십시오. 그러나 엑스트라 동반자 버전 1.1에 액세스 할 수 있습니다.Log4j 1.2.15 ExpressionFilter regex
ExpressionFilter
을 사용하여 하나 이상의 '-'기호 뒤에 0-9의 숫자가 오는 메시지를 일치 시키려고합니다. 예를 들어 : -03928474
또는 --27646
등
편집 : 전체 문자열의 예 : 나는이 부분을 일치시킬 <ClassName---0182364759> xxx this is a debug message
.
나는 다음과 같은 표현을 사용하고 있습니다 : MSG LIKE [-]{1,}[0-9]{1,}
이것은 내가 시도 모든 정규식 사이트 구축을 기반으로 내 요구에 부응해야한다. 참고로 [0-9]{1,}
대신 \d{1,}
을 시도했지만 Log4j는 \ d를 표현식에서 제거합니다 (디버그가 켜져 있음).
Appender
의 다른 ExpressionFilter
s가 예상대로 작동하므로 Appender
의 구조에 문제가 있다고 생각하지 않습니다. ,
<filter class="org.apache.log4j.filter.ExpressionFilter">
<param name="Expression" value="(MSG LIKE [-]{1,}[0-9]{1,})" />
<param name="AcceptOnMatch" value="true" />
</filter>
을 같은 펜더의 다음 줄에 사용할 수 있습니까 :
이
은 작동하지 않습니다 하나입니다<filter class="org.apache.log4j.filter.ExpressionFilter">
<param name="Expression" value="(LEVEL >= WARN)" />
<param name="AcceptOnMatch" value="true" />
</filter>
이것은 XML로 지정해야합니다.
Log4j 1.2가 정규식을 처리하는 방식의 특성에 익숙한 사람이나 내가 잘못한 곳을 지적 할 수있는 사람은 누구나 알고 있습니까?
'\ d '대신'[0-9]'를 사용하는 것은 이해할 수 있지만'+'대신'{1,}'을 사용하는 것은 어리석은 일입니다. 또한, 왜 대괄호 안에'-'를 넣을지 모르겠습니다. 어쨌든, 대답에 입력 문자열 중 일부를 제공 할 수 있습니까? 우리가 당신이 어울리는 것을 모를 때 문제를 디버그하기는 어렵습니다. – CAustin
나는 이미 예제를 포함했다 : "예 :'-03928474' 또는'--27646' 등." –
전체 라인입니까? 당신의 패턴에는'MSG LIKE ... '가 포함되어 있습니다. – CAustin