使用 Process.runtime.exec 记录到系统日志

Logging to syslog using Process.runtime.exec

我目前正在尝试将数据记录到系统日志中,我正在使用 java 中的 "Runtime.getRuntime().exec" 语句来执行此操作。完整的声明是:

Runtime.getRuntime().exec("logger " +  data.toString());

现在这个效果很好,但它似乎太简单了,我想知道直接使用它是否会产生不良影响。此外,如果有更好的方法将数据(log4j 库除外)记录到系统日志,我愿意接受。谢谢。

您正在为每个日志条目生成一个新进程,这非常昂贵。另外,您可能会通过将 data.toString() 传递给命令行来让自己面临注入攻击。执行 Log4j 库可能执行的操作(如果您需要灵感,它是开源的)并发送 UDP 消息。既便宜又便携

如果您想从头开始编写网络代码,协议在 rfc5424 and rfc5426 中定义。