diff --git a/src/main/java/biz/nellemann/syslogd/Application.java b/src/main/java/biz/nellemann/syslogd/Application.java index 86d0d3a..35b6fa0 100644 --- a/src/main/java/biz/nellemann/syslogd/Application.java +++ b/src/main/java/biz/nellemann/syslogd/Application.java @@ -15,16 +15,6 @@ */ package biz.nellemann.syslogd; -import biz.nellemann.syslogd.msg.SyslogMessage; -import biz.nellemann.syslogd.net.*; -import biz.nellemann.syslogd.parser.GelfParser; -import biz.nellemann.syslogd.parser.SyslogParser; -import biz.nellemann.syslogd.parser.SyslogParserRfc3164; -import biz.nellemann.syslogd.parser.SyslogParserRfc5424; - -import picocli.CommandLine; -import picocli.CommandLine.Command; - import java.io.IOException; import java.net.InetSocketAddress; import java.net.URI; @@ -34,6 +24,19 @@ import java.util.List; import java.util.Locale; import java.util.concurrent.Callable; +import biz.nellemann.syslogd.msg.SyslogMessage; +import biz.nellemann.syslogd.net.GelfClient; +import biz.nellemann.syslogd.net.LokiClient; +import biz.nellemann.syslogd.net.TcpServer; +import biz.nellemann.syslogd.net.UdpClient; +import biz.nellemann.syslogd.net.UdpServer; +import biz.nellemann.syslogd.parser.GelfParser; +import biz.nellemann.syslogd.parser.SyslogParser; +import biz.nellemann.syslogd.parser.SyslogParserRfc3164; +import biz.nellemann.syslogd.parser.SyslogParserRfc5424; +import picocli.CommandLine; +import picocli.CommandLine.Command; + @Command(name = "syslogd", mixinStandardHelpOptions = true, versionProvider = biz.nellemann.syslogd.VersionProvider.class) @@ -152,7 +155,7 @@ public class Application implements Callable, LogReceiveListener { if(msg != null) { - if(logForwardListeners.size() > 0) { + if(!logForwardListeners.isEmpty()) { sendForwardEvent(msg); } diff --git a/src/main/java/biz/nellemann/syslogd/InputReader.java b/src/main/java/biz/nellemann/syslogd/InputReader.java index c7b5e61..b689ee4 100644 --- a/src/main/java/biz/nellemann/syslogd/InputReader.java +++ b/src/main/java/biz/nellemann/syslogd/InputReader.java @@ -1,12 +1,12 @@ package biz.nellemann.syslogd; -import biz.nellemann.syslogd.msg.SyslogMessage; - import java.io.InputStream; import java.util.ArrayList; import java.util.List; import java.util.Scanner; +import biz.nellemann.syslogd.msg.SyslogMessage; + public class InputReader extends Thread { private final Scanner input; @@ -17,6 +17,7 @@ public class InputReader extends Thread { this.protocol = protocol; } + @Override public void run() { while(input.hasNextLine()) { diff --git a/src/main/java/biz/nellemann/syslogd/net/GelfClient.java b/src/main/java/biz/nellemann/syslogd/net/GelfClient.java index 7bbe3ef..5bd4496 100644 --- a/src/main/java/biz/nellemann/syslogd/net/GelfClient.java +++ b/src/main/java/biz/nellemann/syslogd/net/GelfClient.java @@ -1,13 +1,14 @@ package biz.nellemann.syslogd.net; -import biz.nellemann.syslogd.LogForwardEvent; -import biz.nellemann.syslogd.SyslogPrinter; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - import java.net.InetSocketAddress; import java.net.SocketException; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +import biz.nellemann.syslogd.LogForwardEvent; +import biz.nellemann.syslogd.SyslogPrinter; + public class GelfClient extends UdpClient { private final static Logger log = LoggerFactory.getLogger(GelfClient.class); diff --git a/src/main/java/biz/nellemann/syslogd/net/LokiClient.java b/src/main/java/biz/nellemann/syslogd/net/LokiClient.java index 402428a..5f8cf61 100644 --- a/src/main/java/biz/nellemann/syslogd/net/LokiClient.java +++ b/src/main/java/biz/nellemann/syslogd/net/LokiClient.java @@ -15,19 +15,22 @@ */ package biz.nellemann.syslogd.net; -import biz.nellemann.syslogd.LogForwardEvent; -import biz.nellemann.syslogd.LogForwardListener; -import biz.nellemann.syslogd.SyslogPrinter; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - import java.io.IOException; import java.io.InputStream; import java.io.OutputStream; -import java.net.*; +import java.net.HttpURLConnection; +import java.net.MalformedURLException; +import java.net.URL; import java.nio.charset.StandardCharsets; import java.util.concurrent.ArrayBlockingQueue; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +import biz.nellemann.syslogd.LogForwardEvent; +import biz.nellemann.syslogd.LogForwardListener; +import biz.nellemann.syslogd.SyslogPrinter; + public class LokiClient implements LogForwardListener, Runnable { private final static Logger log = LoggerFactory.getLogger(LokiClient.class); @@ -84,7 +87,7 @@ public class LokiClient implements LogForwardListener, Runnable { while (true) { try { send(blockingQueue.take()); - } catch (Exception e) { + } catch (MalformedURLException | InterruptedException e) { log.warn(e.getMessage()); } } diff --git a/src/main/java/biz/nellemann/syslogd/net/UdpServer.java b/src/main/java/biz/nellemann/syslogd/net/UdpServer.java index ebf148c..4617c5d 100644 --- a/src/main/java/biz/nellemann/syslogd/net/UdpServer.java +++ b/src/main/java/biz/nellemann/syslogd/net/UdpServer.java @@ -15,9 +15,6 @@ */ package biz.nellemann.syslogd.net; -import biz.nellemann.syslogd.LogReceiveEvent; -import biz.nellemann.syslogd.LogReceiveListener; - import java.io.IOException; import java.net.DatagramPacket; import java.net.DatagramSocket; @@ -27,6 +24,9 @@ import java.util.List; import org.slf4j.Logger; import org.slf4j.LoggerFactory; +import biz.nellemann.syslogd.LogReceiveEvent; +import biz.nellemann.syslogd.LogReceiveListener; + public class UdpServer extends Thread { private final static Logger log = LoggerFactory.getLogger(UdpServer.class); @@ -38,6 +38,7 @@ public class UdpServer extends Thread { socket = new DatagramSocket(port); } + @Override public void run() { byte[] buf = new byte[8192]; @@ -48,7 +49,7 @@ public class UdpServer extends Thread { socket.receive(packet); //String packetData = new String(packet.getData(), packet.getOffset(), packet.getLength(), StandardCharsets.UTF_8); sendEvent(packet); - } catch (Exception e) { + } catch (IOException e) { log.error("run() - error: {}", e.getMessage()); listen = false; } diff --git a/src/main/java/biz/nellemann/syslogd/parser/GelfParser.java b/src/main/java/biz/nellemann/syslogd/parser/GelfParser.java index 9e45a98..d29ff20 100644 --- a/src/main/java/biz/nellemann/syslogd/parser/GelfParser.java +++ b/src/main/java/biz/nellemann/syslogd/parser/GelfParser.java @@ -1,17 +1,19 @@ package biz.nellemann.syslogd.parser; -import biz.nellemann.syslogd.msg.SyslogMessage; -import com.fasterxml.jackson.core.JsonProcessingException; -import com.fasterxml.jackson.databind.ObjectMapper; -import com.fasterxml.jackson.datatype.jsr310.JavaTimeModule; -import org.apache.commons.collections4.map.PassiveExpiringMap; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - import java.time.Instant; import java.util.Arrays; import java.util.TreeMap; +import org.apache.commons.collections4.map.PassiveExpiringMap; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +import com.fasterxml.jackson.core.JsonProcessingException; +import com.fasterxml.jackson.databind.ObjectMapper; +import com.fasterxml.jackson.datatype.jsr310.JavaTimeModule; + +import biz.nellemann.syslogd.msg.SyslogMessage; + /* For more information about the GELF format, visit: https://go2docs.graylog.org/5-0/getting_in_log_data/gelf.html */ diff --git a/src/main/java/biz/nellemann/syslogd/parser/SyslogParser.java b/src/main/java/biz/nellemann/syslogd/parser/SyslogParser.java index a873bdf..e6741f5 100644 --- a/src/main/java/biz/nellemann/syslogd/parser/SyslogParser.java +++ b/src/main/java/biz/nellemann/syslogd/parser/SyslogParser.java @@ -15,15 +15,16 @@ */ package biz.nellemann.syslogd.parser; -import biz.nellemann.syslogd.msg.SyslogMessage; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - import java.nio.charset.StandardCharsets; import java.time.Instant; import java.util.zip.DataFormatException; import java.util.zip.Inflater; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +import biz.nellemann.syslogd.msg.SyslogMessage; + public abstract class SyslogParser { private final static Logger log = LoggerFactory.getLogger(SyslogParser.class); diff --git a/src/main/java/biz/nellemann/syslogd/parser/SyslogParserRfc3164.java b/src/main/java/biz/nellemann/syslogd/parser/SyslogParserRfc3164.java index f32ca0c..8e1a618 100644 --- a/src/main/java/biz/nellemann/syslogd/parser/SyslogParserRfc3164.java +++ b/src/main/java/biz/nellemann/syslogd/parser/SyslogParserRfc3164.java @@ -15,18 +15,21 @@ */ package biz.nellemann.syslogd.parser; -import biz.nellemann.syslogd.msg.Facility; -import biz.nellemann.syslogd.msg.Severity; -import biz.nellemann.syslogd.msg.SyslogMessage; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - -import java.time.*; +import java.time.Instant; +import java.time.OffsetDateTime; +import java.time.ZoneId; import java.time.format.DateTimeFormatter; import java.time.format.DateTimeParseException; import java.util.regex.Matcher; import java.util.regex.Pattern; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +import biz.nellemann.syslogd.msg.Facility; +import biz.nellemann.syslogd.msg.Severity; +import biz.nellemann.syslogd.msg.SyslogMessage; + public class SyslogParserRfc3164 extends SyslogParser { private final static Logger log = LoggerFactory.getLogger(SyslogParserRfc3164.class); @@ -89,6 +92,7 @@ public class SyslogParserRfc3164 extends SyslogParser { * @param dateString * @return */ + @Override public Instant parseTimestamp(String dateString) { // We need to add current year to parse date correctly diff --git a/src/main/java/biz/nellemann/syslogd/parser/SyslogParserRfc5424.java b/src/main/java/biz/nellemann/syslogd/parser/SyslogParserRfc5424.java index 2d6de23..c09b020 100644 --- a/src/main/java/biz/nellemann/syslogd/parser/SyslogParserRfc5424.java +++ b/src/main/java/biz/nellemann/syslogd/parser/SyslogParserRfc5424.java @@ -15,20 +15,21 @@ */ package biz.nellemann.syslogd.parser; -import biz.nellemann.syslogd.msg.Severity; -import biz.nellemann.syslogd.msg.Facility; -import biz.nellemann.syslogd.msg.SyslogMessage; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - import java.text.ParseException; import java.text.SimpleDateFormat; -import java.time.*; +import java.time.Instant; import java.util.Arrays; import java.util.List; import java.util.regex.Matcher; import java.util.regex.Pattern; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +import biz.nellemann.syslogd.msg.Facility; +import biz.nellemann.syslogd.msg.Severity; +import biz.nellemann.syslogd.msg.SyslogMessage; + public class SyslogParserRfc5424 extends SyslogParser { private final static Logger log = LoggerFactory.getLogger(SyslogParserRfc5424.class); @@ -98,6 +99,7 @@ public class SyslogParserRfc5424 extends SyslogParser { * @param dateString * @return */ + @Override public Instant parseTimestamp(String dateString) { /*