使用Process.runtime.exec记录到syslog

问题描述 投票:-3回答:1

我目前正在尝试将数据记录到syslog中,我在java中使用“Runtime.getRuntime()。exec”语句来做到这一点。完整的声明是:

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

现在这个工作完美但看起来太简单了,我想知道如果直接使用它有不好的效果。此外,如果有更好的方法将数据(log4j库除外)记录到syslog,我将对它开放。谢谢。

java syslog
1个回答
2
投票

您正在为每个日志条目生成一个新进程,这非常昂贵。此外,您可以通过将data.toString()传递到命令行来打开自己注射攻击。做Log4j库可能做的事情(如果你想要灵感,它是开源的)并发送UDP消息。这很便宜,也很便携。

如果你想从头开始编写网络代码,那么协议在rfc5424rfc5426中定义。

© www.soinside.com 2019 - 2024. All rights reserved.