日志记录过程与脚本松散耦合

日志记录过程与脚本松散耦合

我有一个脚本,每天将所有日志记录(输出、错误等)捕获在一个日志文件中。
该脚本每天可以调用超过 10k 次,最多同时调用 3 个。

我目前面临的问题是,有时当它们同时执行时,日志记录会在同一个日志文件中相互写入。
我已经在研究诸如集群和信号量之类的选项来解决这个问题,但这可能会在进程本身的执行时创建一个队列,这在我的情况下是不需要的。

所以我想知道是否可以在其他类型的其他进程中进行日志记录,只有在没有其他进程写入时才写入日志文件?结果是日志文件是“干净的”并且调用脚本按目前的方式运行,没有任何延迟?

答案1

为什么不直接使用logger大多数 Linux 发行版上应该有的命令呢?这就像

logger "this is my log message"

默认情况下,它应该将您的日志发送到/var/log/syslog

您可以在脚本中调用它,然后脚本将通过操作系统上的标准日志守护进程和机器生成日志条目,这些守护进程应该处理您尝试管理的所有并发问题。

检查logger手册页了解详细信息,有很多选项可以调整,包括日志级别等。

您还可以配置系统记录器(syslog通常)以特殊方式处理这些日志,包括日志轮换、压缩、文件名等......

相关内容