# 1 楼答案 我将系统记录器与以下运行时一起使用: public static void log(String TextToLog){ Runtime r = Runtime.getRuntime(); try{ r.exec("logger \"Applicationname " + TextToLog + "\""); } catch(IOException e){e.printStackTrace();} }
# 2 楼答案 假设“没有库”意味着没有第三方库 一种方法是编写自己的Syslog协议实现代码;见RFC 5424。您可以用纯Java实现这一点 更正-实际上,不是纯Java。syslog协议(通常)使用UNIX域套接字,并且没有内置的Java库功能。您需要求助于本机代码或第三方库;见UNIX Domain Socket in Java 第二种方法是为syslog(3)C库方法编写JNI包装器。在后台,这个库在本地端口上打开一个数据报套接字,并(大概)实现Syslog协议。所以你这样做不会有多大成就 (请注意,C库是(至少)任何GNU/Linux系统的一部分,因此这不算使用第三方库。至少,我的书中没有……)
# 1 楼答案
我将系统记录器与以下运行时一起使用:
# 2 楼答案
假设“没有库”意味着没有第三方库
一种方法是编写自己的Syslog协议实现代码;见RFC 5424。您可以用纯Java实现这一点
更正-实际上,不是纯Java。syslog协议(通常)使用UNIX域套接字,并且没有内置的Java库功能。您需要求助于本机代码或第三方库;见UNIX Domain Socket in Java
第二种方法是为
syslog(3)
C库方法编写JNI包装器。在后台,这个库在本地端口上打开一个数据报套接字,并(大概)实现Syslog协议。所以你这样做不会有多大成就(请注意,C库是(至少)任何GNU/Linux系统的一部分,因此这不算使用第三方库。至少,我的书中没有……)