【发布时间】:2018-05-29 09:49:26
【问题描述】:
我想在 Linux 系统上使用 java 程序编写 Syslog。我不想使用任何库。
【问题讨论】:
我想在 Linux 系统上使用 java 程序编写 Syslog。我不想使用任何库。
【问题讨论】:
假设“没有库”意味着没有第三方库。
一种方法是编写您自己的 Syslog 协议实现;见RFC 5424。你可以在纯 Java 中做到这一点。
更正 - 实际上,不是纯 Java。 syslog 协议(通常)使用 UNIX 域套接字,并且没有用于此的内置 Java 库功能。您需要使用本机代码或 3rd-party 库;见UNIX Domain Socket in Java
第二种方法是为syslog(3) C 库方法编写一个JNI 包装器。在底层,这个库在本地端口上打开一个数据报套接字,并且(可能)实现了 Syslog 协议。所以你这样做并不会取得太大的成就。
(请注意,C 库是(至少)任何 GNU/Linux 系统的一部分,因此这不算使用 3rd-party 库。至少,在我的书中没有......)
【讨论】:
我将系统记录器与这样的运行时一起使用:
public static void log(String TextToLog){
Runtime r = Runtime.getRuntime();
try{
r.exec("logger \"Applicationname " + TextToLog + "\"");
}
catch(IOException e){e.printStackTrace();}
}
【讨论】: