package org.araqne.logparser.krsyslog.nexg;
import java.util.HashMap;
import java.util.Map;
import org.araqne.log.api.V1LogParser;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
public class VForceUtmParser extends V1LogParser {
private final Logger slog = LoggerFactory.getLogger(VForceUtmParser.class.getName());
@Override
public Map<String, Object> parse(Map<String, Object> params) {
String line = (String) params.get("line");
if (line == null)
return params;
Map<String, Object> m = new HashMap<String, Object>();
try {
int b = 0;
int e = 0;
for (int i = 0; i < 3; ++i) {
e = line.indexOf(" ", b);
b = e + 1;
}
String dateTime = line.substring(0, e);
m.put("datetime", dateTime);
b = e + 1;
e = line.indexOf(":", b);
String logCategory = line.substring(b, e);
m.put("log_category", logCategory);
// skip device serial
b = e + 2;
e = line.indexOf(" ", b);
b = e + 1;
line = line.substring(b);
for (int i = 0; i < line.length();) {
e = line.indexOf(", ", i);
String token = "";
if (e != -1)
token = line.substring(i, e);
else {
token = line.substring(i);
e = line.length();
}
int p = token.indexOf(":");
m.put(token.substring(0, p).toLowerCase(), token.substring(p + 1));
i = e + 2;
}
return m;
} catch (Throwable t) {
if (slog.isDebugEnabled())
slog.debug("araqne krsyslog parser: vforce utm parse error [" + line + "]", t);
return params;
}
}
}