forked from Graylog2/graylog2-server
-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
* Use log level "debug" for debugging messages * Use Tools#getUTCTimestampWithMilliseconds(long) instead of reimplementing its behaviour
- Loading branch information
Showing
1 changed file
with
15 additions
and
27 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,6 +1,6 @@ | ||
/** | ||
* Copyright 2010, 2011 Lennart Koopmann <[email protected]> | ||
* | ||
* | ||
* This file is part of Graylog2. | ||
* | ||
* Graylog2 is free software: you can redistribute it and/or modify | ||
|
@@ -29,24 +29,23 @@ | |
import org.productivity.java.syslog4j.server.SyslogServerSessionlessEventHandlerIF; | ||
|
||
import java.net.SocketAddress; | ||
import org.joda.time.DateTime; | ||
|
||
/** | ||
* SyslogEventHandler.java: May 17, 2010 8:58:18 PM | ||
* | ||
* <p/> | ||
* Handles incoming Syslog messages | ||
* | ||
* @author Lennart Koopmann <[email protected]> | ||
*/ | ||
public class SyslogEventHandler implements SyslogServerSessionlessEventHandlerIF { | ||
|
||
private static final Logger LOG = Logger.getLogger(SyslogEventHandler.class); | ||
|
||
/** | ||
* Handle an incoming syslog message: Output if in debug mode, store in MongoDB, ReceiveHooks | ||
* | ||
* @param syslogServer The syslog server | ||
* @param event The event to handle | ||
* @param event The event to handle | ||
*/ | ||
public void event(SyslogServerIF syslogServer, SocketAddress socketAddress, SyslogServerEventIF event) { | ||
|
||
|
@@ -55,34 +54,23 @@ public void event(SyslogServerIF syslogServer, SocketAddress socketAddress, Sysl | |
// Print out debug information. | ||
if (event instanceof GraylogSyslogServerEvent) { | ||
GraylogSyslogServerEvent glEvent = (GraylogSyslogServerEvent) event; | ||
LOG.info("Received syslog message (via AMQP): " + event.getMessage()); | ||
LOG.info("AMQP queue: " + glEvent.getAmqpReceiverQueue()); | ||
LOG.debug("Received syslog message (via AMQP): " + event.getMessage()); | ||
LOG.debug("AMQP queue: " + glEvent.getAmqpReceiverQueue()); | ||
|
||
gelf.addAdditionalData("_amqp_queue", glEvent.getAmqpReceiverQueue()); | ||
} else { | ||
LOG.info("Received syslog message: " + event.getMessage()); | ||
LOG.debug("Received syslog message: " + event.getMessage()); | ||
} | ||
LOG.info("Host: " + event.getHost()); | ||
LOG.info("Facility: " + event.getFacility() + " (" + Tools.syslogFacilityToReadable(event.getFacility()) + ")"); | ||
LOG.info("Level: " + event.getLevel() + " (" + Tools.syslogLevelToReadable(event.getLevel()) + ")"); | ||
LOG.info("Raw: " + new String(event.getRaw())); | ||
|
||
// Use JodaTime to easy get the milliseconds and construct a float. (This looks dumb but is the easiest and safest way) | ||
try { | ||
DateTime jt = new DateTime(event.getDate().getTime()); | ||
String unixTime = String.valueOf(event.getDate().getTime()/1000L); | ||
String millis = String.valueOf(jt.getMillisOfSecond()); | ||
Double milliSecondTime = new Double(unixTime + "." + millis); | ||
gelf.setCreatedAt(milliSecondTime.doubleValue()); | ||
} catch (NumberFormatException e) { | ||
LOG.error("Could not determine milliseconds of syslog message. (NumberFormatException)"); | ||
} | ||
|
||
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())); | ||
|
||
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()); | ||
|
@@ -91,8 +79,8 @@ public void event(SyslogServerIF syslogServer, SocketAddress socketAddress, Sysl | |
try { | ||
SimpleGELFClientHandler gelfHandler = new SimpleGELFClientHandler(gelf); | ||
gelfHandler.handle(); | ||
} catch ( Exception e ) { | ||
// I don't care | ||
} catch (Exception e) { | ||
LOG.debug("Couldn't process message with GELF handler", e); | ||
} | ||
} | ||
|
||
|