使用Process.runtime.exec登录到syslog

时间:2019-04-22 06:06:39

标签: java syslog

我当前正在尝试将数据记录到syslog中,并且我正在使用Java中的“ Runtime.getRuntime()。exec”语句来执行此操作。完整的声明是:

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

现在这可以正常工作,但是似乎太简单了,我想知道直接使用它是否有不好的效果。另外,如果有更好的方法将数据(log4j库除外)记录到syslog,我也可以接受。谢谢。

1 个答案:

答案 0 :(得分:2)

您正在为每个单个日志条目生成一个新进程,这非常昂贵。另外,您可以通过向命令行传递data.toString()来进行注入攻击。做Log4j库可能做的事情(如果您想得到启发,它是开源的)并发送UDP消息。那很便宜而且也很便携。

如果您想从头开始编写网络代码,则在rfc5424rfc5426中定义该协议。