import java.net.SocketAddress;
import org.graylog2.syslog4j.SyslogConstants;
import org.graylog2.syslog4j.server.SyslogServer;
import org.graylog2.syslog4j.server.SyslogServerConfigIF;
import org.graylog2.syslog4j.server.SyslogServerEventIF;
import org.graylog2.syslog4j.server.SyslogServerIF;
import org.graylog2.syslog4j.server.SyslogServerSessionEventHandlerIF;
public class MySyslogServer {
private static final String HOST = "127.0.0.1";
private static final int PORT = 514;
private void receiveSyslogMessage() throws InterruptedException {
SyslogServerIF server = SyslogServer.getInstance(SyslogConstants.UDP);
SyslogServerConfigIF config = server.getConfig();
config.setHost(HOST);
config.setPort(PORT);
config.addEventHandler(new SyslogServerSessionEventHandlerIF() {
@Override
public Object sessionOpened(SyslogServerIF syslogServerIF, SocketAddress socketAddress) {
return null;
}
@Override
public void event(Object o, SyslogServerIF syslogServerIF, SocketAddress socketAddress,
SyslogServerEventIF syslogServerEventIF) {
System.out.println("receive from:" + socketAddress + "tmessage" + syslogServerEventIF.getMessage());
}
@Override
public void exception(Object o, SyslogServerIF syslogServerIF, SocketAddress socketAddress, Exception e) {
}
@Override
public void sessionClosed(Object o, SyslogServerIF syslogServerIF, SocketAddress socketAddress, boolean b) {
}
@Override
public void initialize(SyslogServerIF syslogServerIF) {
}
@Override
public void destroy(SyslogServerIF syslogServerIF) {
}
});
SyslogServer.getThreadedInstance(SyslogConstants.UDP);
Thread.sleep(100000);
}
public static void main(String[] args) throws InterruptedException {
new MySyslogServer().receiveSyslogMessage();
}
}
import java.net.URLDecoder;
import java.util.Date;
import org.graylog2.syslog4j.Syslog;
import org.graylog2.syslog4j.SyslogIF;
public class MySyslogClient {
public static void main(String[] args) {
try {
// 获取syslog的操作类,使用udp协议。syslog支持"udp", "tcp", "unix_syslog", "unix_socket"协议
SyslogIF syslog = Syslog.getInstance("udp");
// 设置syslog服务器端地址
syslog.getConfig().setHost("127.0.0.1");
// 设置syslog接收端口,默认514
syslog.getConfig().setPort(514);
// 拼接syslog日志,这个日志是自己定义的,通常我们定义成符合公司规范的格式就行,方便查询。例如 操作时间:2014年8月1日 操作者ID:张三
// 等。信息就是一个字符串。
StringBuffer buffer = new StringBuffer();
buffer.append("操作时间:" + new Date().toString().substring(4, 20) + ";");
buffer.append("操作者ID:" + "张三" + ";");
buffer.append("操作时间:" + new Date() + ";");
buffer.append("日志类别:" + "22" + ";");
buffer.append("执行动作:" + "动作" + ";");
buffer.append("备注:" + "备注");
syslog.log(0, URLDecoder.decode(buffer.toString(), "utf-8"));
} catch (Exception e) {
}
}
}
import org.apache.logging.log4j.*;
public class TestLog4j {
private static final Logger logger = LogManager.getLogger(TestLog4j.class);
public static void main(String[] args) throws Exception {
logger.debug("Mydebug message");
logger.info("Myinfo message");
logger.warn("Mywarn message");
logger.error("Myerror message");
try {
int i = 1 / 0;
} catch (Exception exc) {
logger.error("error message with stack trace", new Exception("I forced this exception", exc));
}
logger.fatal("fatal message");
}
}
receive from:/127.0.0.1:54111 message2021-10-28T15:24:23.257+08:00 hostname testlog4j 15188 Audit [testlog4j@18060 category="TestLog4j" exception="" priority="WARN" thread="main"] Mywarn message
receive from:/127.0.0.1:54111 message2021-10-28T15:24:23.266+08:00 hostname testlog4j 15188 Audit [testlog4j@18060 category="TestLog4j" exception="" priority="ERROR" thread="main"] Myerror message
receive from:/127.0.0.1:54111 message2021-10-28T15:24:23.267+08:00 hostname testlog4j 15188 Audit [testlog4j@18060 category="TestLog4j" exception="java.lang.Exception: I forced this exception
at TestLog4j.main(TestLog4j.java:15)
Caused by: java.lang.ArithmeticException: / by zero
at TestLog4j.main(TestLog4j.java:13)
" priority="ERROR" thread="main"] error message with stack trace
receive from:/127.0.0.1:54111 message2021-10-28T15:24:23.301+08:00 hostname testlog4j 15188 Audit [testlog4j@18060 category="TestLog4j" exception="" priority="FATAL" thread="main"] fatal message