13

从哪里supervisorctl tail获取某个进程的日志信息?如何获得完整的日志?

4

1 回答 1

21

从命令行帮助 ( supervisorctl help tail):

tail [-f] <名称> [stdout|stderr](默认标准输出)
前任:
tail -f <name> 命名进程标准输出的连续尾部
                        Ctrl-C 退出。
tail -100 <name> 进程标准输出的最后 100 *bytes*
tail <name> stderr last 1600 *bytes* of process stderr

因此,默认情况下,该tail命令尾随进程标准输出。如果您需要获取完整的日志,该部分的stdout_logfile选项[program:x]决定了它的存储位置;还有一个stderr_logfile选项。

如果该选项未设置或设置为AUTO,则将在进程启动时创建日志文件,但在 supervisord 重新启动时将其清除。该文件在选项[supervisord] childlogdir设置的目录中创建(默认情况下是您平台的TMP目录),并生成格式为 的文件名<program-name>-<stdout|stderr>---<supervisor-identifier>-<6-random-characters>.log,例如varnish-stdout---supervisor-AqY52e.log.

因此,如果您想访问整个标准输出日志,您至少需要将childlogdir选项设置为固定目录,以免您不得不搜索正确的临时目录。

于 2012-07-09T09:56:18.360 回答