@Override
public void event(Object arg0, SyslogServerIF config, SocketAddress arg2, SyslogServerEventIF event) {
Date date = (event.getDate() == null ? new Date() : event.getDate());
String facility = getFacilityString(event.getFacility());
OpLevel level = getOpLevel(event.getLevel());
TrackingEvent tevent = logger.newEvent(facility, event.getMessage());
tevent.getOperation().setSeverity(level);
tevent.getOperation().addProperty(new Property("facility", facility));
tevent.getOperation().addProperty(new Property("hostname", event.getHost()));
tevent.getOperation().addProperty(new Property("level", event.getLevel(), ValueTypes.VALUE_TYPE_ID));
if (arg2 instanceof InetSocketAddress) {
InetSocketAddress from = (InetSocketAddress) arg2;
tevent.getOperation().addProperty(new Property("hostaddr", from.getAddress().getHostAddress()));
tevent.setLocation(from.getAddress().getHostAddress());
} else {
tevent.setLocation(event.getHost());
}
tevent.setCharset(config.getConfig().getCharSet());
if (event instanceof StructuredSyslogServerEvent) {
processRFC5424(facility, (StructuredSyslogServerEvent) event, tevent);
} else {
processRFC3164(facility, event, tevent);
}
extractVariables(event, tevent);
String locationKey = tevent.getLocation() + "/" + tevent.getOperation().getResource();
tevent.stop(date.getTime() * 1000, getUsecSinceLastEvent(locationKey));
logger.tnt(tevent);
}