在python中,登录到syslog相当简单:
syslog.openlog("ident")
syslog.syslog(0, "spilled beer on server")
syslog.closelog()在Java中有一种相当简单的方法吗?在进行了相当多的googling搜索之后,我一直无法找到一个简单易懂的方法,它不需要重新配置rsyAdd.1-d或syAdd.1-d。如果没有对应的内容,那么登录到syslog的最简单方法是什么?
发布于 2013-08-16 00:01:14
没有udp的直接访问日志的一种方法是使用syslog4j。我不一定会说它很简单,但至少不需要重新配置syslog。
发布于 2013-08-13 21:28:32
我能想到的最接近的方法是使用Log4J并配置SyslogAppender,以便将其写入syslog。对不起,这不像Python那么容易!
发布于 2014-07-22 16:51:20
这是我能想到的最简单的客户端代码:
import java.net.DatagramPacket;
import java.net.DatagramSocket;
import java.net.InetAddress;
// java Syslog localhost "Hello world"
public class Syslog {
public static void main(String[] args) throws Exception {
InetAddress address = InetAddress.getByName(args[0]);
byte[] bytes = args[1].getBytes();
DatagramSocket socket = new DatagramSocket();
try {
DatagramPacket data = new DatagramPacket(bytes, bytes.length, address, 514);
socket.send(data);
} finally {
socket.close();
}
}
}和服务器(syAdd.1-d):
import java.net.DatagramPacket;
import java.net.DatagramSocket;
// java SyslogD
public class SyslogD {
public static void main(String[] args) throws Exception {
DatagramSocket socket = new DatagramSocket(514);
try {
for(;;) {
DatagramPacket data = new DatagramPacket(new byte[4096], 4096);
socket.receive(data);
System.out.println("[" + data.getAddress().toString() + "] " + new String(data.getData(),0,data.getLength()));
}
} finally {
socket.close();
}
}
}https://stackoverflow.com/questions/18219529
复制相似问题