supervisorctl tail
从哪里获取某个进程的日志信息?我如何获得完整的日志?
答案 0 :(得分:16)
从命令行帮助(supervisorctl help tail
):
tail [-f] <name> [stdout|stderr] (default stdout) Ex: tail -f <name> Continuous tail of named process stdout Ctrl-C to exit. tail -100 <name> last 100 *bytes* of process stdout tail <name> stderr last 1600 *bytes* of process stderr
因此,默认情况下,tail
命令会使进程stdout失效。如果您需要获取完整日志,stdout_logfile
option of the [program:x]
section将确定存储的位置;还有一个stderr_logfile
选项。
如果未设置该选项或将其设置为AUTO
,则会在进程启动时创建日志文件,但每当supervisord重新启动时都会清除。此文件是在the [supervisord]
childlogdir
option设置的目录中创建的(默认情况下是您平台的TMP
directory),并且生成的文件名为<program-name>-<stdout|stderr>---<supervisor-identifier>-<6-random-characters>.log
,例如varnish-stdout---supervisor-AqY52e.log
。
因此,如果要访问整个stdout日志,则至少需要将childlogdir
选项设置为固定目录,以免您必须搜索正确的临时目录。