0
로그 수준과 로그 메시지에 나타나는 텍스트를 기반으로 로그 메시지를 필터링해야합니다. 이러한 메시지는 다음과 같은 형식에 있습니다로그 메시지 필터링을위한 RegExp
12/23/2009 17:33:26.379 [INFO] TMSNG.Main Channelset configured with url [http://172.16.34.4:8080/tms-flux/messagebroker/streamingamf] 12/23/2009 17:33:26.380 [DEBUG] org.springextensions.actionscript.core.command.CompositeCommand Executing composite command '[object CompositeCommand]' in sequence
나는 이미 아래 코드 2 정규 표현식 (텍스트의 수준에 대해 하나 하나)을 생성하지만 난 하나에 이러한 결합 수 있는지 궁금합니다. 몇 가지 조합을 시도했지만 내 regexp 기술이 존재하지 않기 때문에 나는 이것을 작동시키지 못했습니다.
힌트가 있습니까?
코드 :
private function filterLogMessage(item:Object):Boolean {
var logMessage:String = String(item);
var levelFilter:String = getLevelFilter();
var levelRegExp:RegExp = new RegExp(levelFilter, "");
var textFilter:String = StringUtils.trim(filterTextInput.text);
var textRegExp:RegExp = new RegExp(textFilter, "");
var match:Boolean = (levelRegExp.test(logMessage) && textRegExp.test(logMessage));
return match;
}
private function getLevelFilter():String {
var result:String = "";
var selectedLevel:String = levelComboBox.selectedLabel;
switch (selectedLevel) {
case "DEBUG":
//result = "\\[(DEBUG|INFO|WARN|ERROR|FATAL)\\]";
break;
case "INFO":
result = "\\[(INFO|WARN|ERROR|FATAL)\\]";
break;
case "WARN":
result = "\\[(WARN|ERROR|FATAL)\\]";
break;
case "ERROR":
result = "\\[(ERROR|FATAL)\\]";
break;
case "FATAL":
result = "\\[(FATAL)\\]";
break;
}
return result;
}
큰 물건을 다음! 그리고 그것은 매우 단순 해 보입니다 ;-) Merci Folke. –