Skip to content

Commit

Permalink
Cleanup, add history log back
Browse files Browse the repository at this point in the history
  • Loading branch information
mnellemann committed Oct 15, 2024
1 parent 88387e9 commit eca2ff0
Show file tree
Hide file tree
Showing 11 changed files with 49 additions and 32 deletions.
4 changes: 3 additions & 1 deletion build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,9 @@ dependencies {
implementation 'info.picocli:picocli:4.7.6'
implementation 'org.slf4j:slf4j-api:2.0.13'
implementation 'org.slf4j:slf4j-simple:2.0.13'
implementation 'ro.pippo:pippo:1.14.0'
implementation 'ro.pippo:pippo-core:1.14.0'
implementation 'ro.pippo:pippo-undertow:1.14.0'
implementation 'ro.pippo:pippo-freemarker:1.14.0'
implementation 'com.fasterxml.jackson.core:jackson-databind:2.15.4'
implementation 'com.fasterxml.jackson.datatype:jackson-datatype-jsr310:2.15.4'
implementation 'org.apache.commons:commons-collections4:4.4'
Expand Down
2 changes: 1 addition & 1 deletion gradle.properties
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
id = syslogd
name = syslogd
group = biz.nellemann.syslogd
version = 1.4.1
version = 1.4.2
description = "Syslog Director"
7 changes: 6 additions & 1 deletion src/main/java/biz/nellemann/syslogd/Main.java
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,8 @@
import java.util.Locale;
import java.util.concurrent.Callable;

import org.apache.commons.collections4.queue.CircularFifoQueue;

import biz.nellemann.syslogd.msg.SyslogMessage;
import biz.nellemann.syslogd.net.GelfClient;
import biz.nellemann.syslogd.net.LokiClient;
Expand All @@ -46,6 +48,7 @@
versionProvider = biz.nellemann.syslogd.VersionProvider.class)
public class Main implements Callable<Integer>, LogReceiveListener {

private CircularFifoQueue<SyslogMessage> queue = new CircularFifoQueue<>(500);
private final List<LogForwardListener> logForwardListeners = new ArrayList<>();
private SyslogParser syslogParser;
private static boolean keepRunning = true;
Expand Down Expand Up @@ -161,7 +164,7 @@ else if (protocol == InputProtocol.RFC5424) {
PippoSettings settings = new PippoSettings(RuntimeMode.PROD);
settings.overrideSetting("server.port", monitorPort);
settings.overrideSetting("server.contextPath", monitorPath);
WebServer pippoApp = new WebServer(settings);
WebServer pippoApp = new WebServer(settings, queue);
logForwardListeners.add(pippoApp.getLogSocketHandler());

Pippo pippo = new Pippo(pippoApp);
Expand All @@ -170,6 +173,7 @@ else if (protocol == InputProtocol.RFC5424) {
}

while(keepRunning) {
//noinspection BusyWait
Thread.sleep(1000);
}

Expand All @@ -192,6 +196,7 @@ public void onLogEvent(LogReceiveEvent event) {

if(!logForwardListeners.isEmpty()) {
sendForwardEvent(msg);
queue.add(msg);
}

if(stdout) {
Expand Down
1 change: 0 additions & 1 deletion src/main/java/biz/nellemann/syslogd/msg/SyslogMessage.java
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,6 @@
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
import com.fasterxml.jackson.annotation.JsonProperty;

import java.lang.reflect.Member;
import java.time.Instant;

@JsonIgnoreProperties(ignoreUnknown = true)
Expand Down
11 changes: 5 additions & 6 deletions src/main/java/biz/nellemann/syslogd/net/LogSocketHandler.java
Original file line number Diff line number Diff line change
Expand Up @@ -22,37 +22,36 @@ public class LogSocketHandler implements WebSocketHandler, LogForwardListener {
@Override
public void onMessage(WebSocketContext webSocketContext, String message) {
log.debug("onMessage() - {}", message);
try {
webSocketContext.sendMessage(message);
} catch (IOException e) {
log.warn("onMessage() - {}", message);
}
}


@Override
public void onMessage(WebSocketContext webSocketContext, byte[] message) {
log.debug("onMessage()");
System.out.println("TestWebSocket.onMessage");
}


@Override
public void onOpen(WebSocketContext webSocketContext) {
log.debug("onOpen()");
webSocketContextList.add(webSocketContext);
}


@Override
public void onClose(WebSocketContext webSocketContext, int closeCode, String message) {
log.debug("onClose()");
webSocketContextList.remove(webSocketContext);
}


@Override
public void onTimeout(WebSocketContext webSocketContext) {
log.debug("onTimeout()");
webSocketContextList.remove(webSocketContext);
}


@Override
public void onError(WebSocketContext webSocketContext, Throwable t) {
log.debug("onError()");
Expand Down
4 changes: 2 additions & 2 deletions src/main/java/biz/nellemann/syslogd/net/LokiClient.java
Original file line number Diff line number Diff line change
Expand Up @@ -66,12 +66,12 @@ public void send(String msg) throws MalformedURLException {
int responseCode = con.getResponseCode();
try (InputStream ignored = con.getInputStream()) {
if(responseCode != 204) {
log.warn("send() - response: " + responseCode);
log.warn("send() - response: {}", responseCode);
}
}

} catch (IOException e) {
log.error("send() - error: " + e.getMessage());
log.error("send() - error: {}", e.getMessage());
} finally {
if(con != null) {
con.disconnect();
Expand Down
5 changes: 2 additions & 3 deletions src/main/java/biz/nellemann/syslogd/net/TcpServer.java
Original file line number Diff line number Diff line change
Expand Up @@ -37,17 +37,16 @@ public class TcpServer extends Thread {
private final static Logger log = LoggerFactory.getLogger(TcpServer.class);

private final int port;
private ServerSocket serverSocket;
protected boolean listen = true;

public TcpServer(int port) {
this.port = port;
}


@Override
public void run() {
try {
serverSocket = new ServerSocket(port);
try(ServerSocket serverSocket = new ServerSocket(port)) {
while (listen)
new ClientHandler(serverSocket.accept(), eventListeners).start();
} catch (IOException e) {
Expand Down
2 changes: 1 addition & 1 deletion src/main/java/biz/nellemann/syslogd/net/UdpClient.java
Original file line number Diff line number Diff line change
Expand Up @@ -43,7 +43,7 @@ public void send(String msg) {
try {
socket.send(packet);
} catch (IOException e) {
log.error("send() - Could not send packet: " + e.getMessage());
log.error("send() - Could not send packet: {}", e.getMessage());
}
}

Expand Down
31 changes: 23 additions & 8 deletions src/main/java/biz/nellemann/syslogd/net/WebServer.java
Original file line number Diff line number Diff line change
@@ -1,38 +1,53 @@
package biz.nellemann.syslogd.net;

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import java.util.Collections;
import java.util.stream.Collectors;

import org.apache.commons.collections4.queue.CircularFifoQueue;

import biz.nellemann.syslogd.SyslogPrinter;
import biz.nellemann.syslogd.msg.SyslogMessage;
import ro.pippo.core.Application;
import ro.pippo.core.PippoSettings;

public class WebServer extends Application {

private final static Logger log = LoggerFactory.getLogger(WebServer.class);
private final LogSocketHandler logSocketHandler = new LogSocketHandler();
private CircularFifoQueue<SyslogMessage> queue;

public LogSocketHandler getLogSocketHandler() {
return logSocketHandler;
public WebServer(PippoSettings settings) {
super((settings));
}

public WebServer(PippoSettings settings) {
public WebServer(PippoSettings settings, CircularFifoQueue<SyslogMessage> q) {
super((settings));
queue = q;
}


@Override
protected void onInit() {

GET("/", routeContext -> routeContext.render("index"));

GET("/ping", routeContext -> routeContext.send("pong"));

/*
GET("/log", routeContext -> routeContext.text().negotiateContentType().send(
queue.stream().sorted(Collections.reverseOrder()).map(SyslogPrinter::toHtml).collect(Collectors.joining())
));*/
));

addWebSocket("/ws/log", logSocketHandler);

}


public LogSocketHandler getLogSocketHandler() {
return logSocketHandler;
}


public void setQueue(CircularFifoQueue<SyslogMessage> q) {
this.queue = q;
}

}
Original file line number Diff line number Diff line change
Expand Up @@ -47,7 +47,7 @@ public class SyslogParserRfc3164 extends SyslogParser {
@Override
public SyslogMessage parse(final String input) throws NumberFormatException {

log.debug("parseRfc3164() " + input);
log.debug("parseRfc3164() {}", input);

Matcher matcher = pattern.matcher(input);
if(!matcher.find()) {
Expand Down Expand Up @@ -105,7 +105,7 @@ public Instant parseTimestamp(String dateString) {
log.debug("parseTimestamp()", e);
}

log.warn("parseTimestamp() - Could not parse timestamp: " + dateString);
log.warn("parseTimestamp() - Could not parse timestamp: {}", dateString);
return Instant.now();
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -15,8 +15,6 @@
*/
package biz.nellemann.syslogd.parser;

import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.time.Instant;
import java.time.format.DateTimeFormatter;
import java.time.format.DateTimeParseException;
Expand Down Expand Up @@ -49,12 +47,12 @@ public class SyslogParserRfc5424 extends SyslogParser {
@Override
public SyslogMessage parse(final String input) throws NumberFormatException {

log.debug("parseRfc5424() " + input);
log.debug("parseRfc5424() {}", input);

Matcher matcher = pattern.matcher(input);
boolean matchFound = matcher.find();
if(!matchFound) {
log.debug("parseRfc5424() - Match not found in: " + input);
log.debug("parseRfc5424() - Match not found in: {}", input);
System.err.println("!" + input);
return null;
}
Expand Down Expand Up @@ -120,11 +118,11 @@ public Instant parseTimestamp(String dateString) {
return Instant.from(temporalAccessor);
}
catch (DateTimeParseException e) {
log.debug("parseTimestamp() " + e.getMessage());
log.debug("parseTimestamp() {}", e.getMessage());
}
}

log.warn("parseTimestamp() - Could not parse timestamp: " + dateString);
log.warn("parseTimestamp() - Could not parse timestamp: {}", dateString);
return Instant.now();
}

Expand Down

0 comments on commit eca2ff0

Please sign in to comment.