linux程序正在将日志发送到syslog。
为了自动测试该程序,我需要检查在完成某些操作后是否已将消息发送到syslog。
不幸的是,syslog文件的位置取决于syslog配置(一台计算机上的/var/log/messages
,另一台计算机上的/var/log/syslog
以及可能的其他路径)有所不同。
如何以编程方式知道syslog文件的当前路径?
如果我知道日志路径,如何检测日志消息?我可以grep日志文件并检查grep命令的返回值,但是:
此测试也应与syslog的busybox版本一起使用。
最佳答案
最好的方法可能是插入一个共享库(使用LD_PRELOAD
),在其中您可以为单元测试的目的提供自己的syslog
函数的可验证实现。您完全不必让消息进入已安装的syslog守护程序(除非您愿意)。
关于linux - 如何测试消息已发送到syslog,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/33127377/