我有一个程序,它使用 err、errx、warn 和 warnx 来提醒用户一些意外事件。现在我必须把这个程序变成一个守护进程,所以这些警报应该进入一个格式良好的日志。
我已经使用 freopen(3) 将 stdout 和 stderr 重定向到一个文件,但这并没有在日志中提供足够的信息。例如,我需要错误的日期和时间。
有没有使用 err(3) 函数的便捷方法,还是应该放弃使用这些函数?
我有一个程序,它使用 err、errx、warn 和 warnx 来提醒用户一些意外事件。现在我必须把这个程序变成一个守护进程,所以这些警报应该进入一个格式良好的日志。
我已经使用 freopen(3) 将 stdout 和 stderr 重定向到一个文件,但这并没有在日志中提供足够的信息。例如,我需要错误的日期和时间。
有没有使用 err(3) 函数的便捷方法,还是应该放弃使用这些函数?
您可能想为有问题的函数编写包装器。这些包装器将必要的信息添加到日志消息中,然后在内部调用原始函数。
关于如何编写包装器,请在此处阅读我的另一个答案,并根据您的需要采用该概念。