如何使用 java 在 linux 上编写 Syslog
Posted
技术标签:
【中文标题】如何使用 java 在 linux 上编写 Syslog【英文标题】:How to Write Syslog on linux using java 【发布时间】:2018-05-29 09:49:26 【问题描述】:我想在 Linux 系统上使用 java 程序编写 Syslog。我不想使用任何库。
【问题讨论】:
【参考方案1】:假设“没有库”意味着没有第三方库。
一种方法是编写您自己的 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 库。至少,在我的书中没有......)
【讨论】:
【参考方案2】:我将系统记录器与这样的运行时一起使用:
public static void log(String TextToLog)
Runtime r = Runtime.getRuntime();
try
r.exec("logger \"Applicationname " + TextToLog + "\"");
catch(IOException e)e.printStackTrace();
【讨论】:
以上是关于如何使用 java 在 linux 上编写 Syslog的主要内容,如果未能解决你的问题,请参考以下文章
如何使用Mingw-64在 Kali Linux上编译Windows漏洞
如何使用 Spark/Scala 在 HDFS 上编写/创建 zip 文件?