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/

    10-13 08:30