    public void event(SyslogServerIF syslogServer, SocketAddress socketAddress, SyslogServerEventIF event) {
        GELFMessage gelf = new GELFMessage();
        if (event instanceof GraylogSyslogServerEvent) {
            GraylogSyslogServerEvent glEvent = (GraylogSyslogServerEvent) event;
            LOG.debug("Received syslog message (via AMQP): " + event.getMessage());
            LOG.debug("AMQP queue: " + glEvent.getAmqpReceiverQueue());
            gelf.addAdditionalData("_amqp_queue", glEvent.getAmqpReceiverQueue());
        } else {
            LOG.debug("Received syslog message: " + event.getMessage());
        }
        LOG.debug("Host: " + event.getHost());
        LOG.debug("Facility: " + event.getFacility() + " (" + Tools.syslogFacilityToReadable(event.getFacility()) + ")");
        LOG.debug("Level: " + event.getLevel() + " (" + Tools.syslogLevelToReadable(event.getLevel()) + ")");
        LOG.debug("Raw: " + new String(event.getRaw()));
        if (event.getDate() == null) {
            LOG.info("Syslog message is missing date or could not be parsed. Not further handling. Message was: " + event.getRaw());
            return;
        }
        try {
            gelf.setCreatedAt(Tools.getUTCTimestampWithMilliseconds(event.getDate().getTime()));
            gelf.setConvertedFromSyslog(true);
            gelf.setVersion("0");
            gelf.setShortMessage(event.getMessage());
            gelf.setHost(event.getHost());
            gelf.setFacility(Tools.syslogFacilityToReadable(event.getFacility()));
            gelf.setLevel(event.getLevel());
            gelf.setRaw(event.getRaw());
        } catch (Exception e) {
            LOG.info("Could not parse syslog message to GELF: " + e.toString(), e);
            return;
        }
        if (gelf.allRequiredFieldsSet()) {
            try {
                SimpleGELFClientHandler gelfHandler = new SimpleGELFClientHandler(gelf);
                gelfHandler.handle();
            } catch (Exception e) {
                LOG.debug("Couldn't process message with GELF handler", e);
            }
        } else {
            LOG.info("Broken or incomplete syslog message. Not further handling. Message was: " + event.getRaw());
        }
    }

    public void event(SyslogServerIF syslogServer, SocketAddress socketAddress, SyslogServerEventIF event) {
        GELFMessage gelf = new GELFMessage();
        if (event instanceof GraylogSyslogServerEvent) {
            GraylogSyslogServerEvent glEvent = (GraylogSyslogServerEvent) event;
            LOG.debug("Received syslog message (via AMQP): " + event.getMessage());
            LOG.debug("AMQP queue: " + glEvent.getAmqpReceiverQueue());
            gelf.addAdditionalData("_amqp_queue", glEvent.getAmqpReceiverQueue());
        } else {
            LOG.debug("Received syslog message: " + event.getMessage());
        }
        LOG.debug("Host: " + event.getHost());
        LOG.debug("Facility: " + event.getFacility() + " (" + Tools.syslogFacilityToReadable(event.getFacility()) + ")");
        LOG.debug("Level: " + event.getLevel() + " (" + Tools.syslogLevelToReadable(event.getLevel()) + ")");
        LOG.debug("Raw: " + new String(event.getRaw()));
        if (event.getDate() == null) {
            LOG.info("Syslog message is missing date or could not be parsed. Not further handling. Message was: " + event.getRaw());
            return;
        }
        try {
            gelf.setCreatedAt(Tools.getUTCTimestampWithMilliseconds(event.getDate().getTime()));
            gelf.setConvertedFromSyslog(true);
            gelf.setVersion("0");
            gelf.setShortMessage(event.getMessage());
            gelf.setFullMessage(new String(event.getRaw()));
            gelf.setHost(event.getHost());
            gelf.setFacility(Tools.syslogFacilityToReadable(event.getFacility()));
            gelf.setLevel(event.getLevel());
            gelf.setRaw(event.getRaw());
        } catch (Exception e) {
            LOG.info("Could not parse syslog message to GELF: " + e.toString(), e);
            return;
        }
        if (gelf.allRequiredFieldsSet()) {
            try {
                SimpleGELFClientHandler gelfHandler = new SimpleGELFClientHandler(gelf);
                gelfHandler.handle();
            } catch (Exception e) {
                LOG.debug("Couldn't process message with GELF handler", e);
            }
        } else {
            LOG.info("Broken or incomplete syslog message. Not further handling. Message was: " + event.getRaw());
        }
    }
