package org.araqne.logparser.krsyslog.kornicglory;
import java.util.HashMap;
import java.util.Map;
import org.araqne.log.api.V1LogParser;
public class TessAuditParser extends V1LogParser {
private static Map<String, String> COLUMNS = new HashMap<String, String>();
static {
COLUMNS.put("LAUDITLOGINDEX", "audit_log_index");
COLUMNS.put("TMOCCUR", "occur_time");
COLUMNS.put("STRCONTENT", "str_content");
COLUMNS.put("STROPERATOR", "str_operator");
COLUMNS.put("LAUDITSETINDEX", "audit_set_index");
COLUMNS.put("LTYPE1", "type1");
COLUMNS.put("LTYPE2", "type2");
COLUMNS.put("STRCOMMENT", "str_comment");
}
@Override
public Map<String, Object> parse(Map<String, Object> log) {
String line = (String) log.get("line");
if (line == null)
return log;
try {
Map<String, Object> m = new HashMap<String, Object>();
int begin = 0;
while (true) {
int end = line.indexOf("\n", begin);
String l = line.substring(begin, (end != -1) ? end : line.length());
int separator = l.indexOf("=");
if (separator != -1) {
String key = l.substring(0, separator);
String value = l.substring(separator + 1);
if (COLUMNS.containsKey(key))
key = COLUMNS.get(key);
m.put(key.toLowerCase(), value);
}
if (end == -1)
break;
begin = end + 1;
}
return m;
} catch (Throwable t) {
return log;
}
}
}