supervisor没有捕获到golang日志输出
supervisor配置
[supervisord]
http_port=/var/tmp/supervisor.sock
pidfile=/var/run/supervisord.pid
logfile=/var/log/supervisor/supervisord.log;
[program:golang-server]
directory=/data/wwwroot/
command=/data/wwwroot/golang-server
autostart=true
autorestart=true
stdout_logfile=/var/log/supervisor/golang-server.log
stderr_logfile=/var/log/supervisor/golang-server.log
日志文件里面没有任何东西。supervisord
日志文件也没有;
服务运行状态正常。supervisor
进程正常
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(5)
你是不是在你的代码里面,通过 logs 把日志给发往其它地方了.如果 logs 默认什么都不配置,就会输出到 stdout 和 stderr 如果你自己做了配置,比如发往 syslog ,日志服务器,kafka,以及文件什么的,那这边可能就没有输出了.
权限问题呢?线上遇到过好几次日志因为权限问题没法写入
如果你想标准输出和错误输出在一个文件,应该去掉stderr_logfile,新增redirect_stderr=true
supervisord 捕获的是stdout和stderr 的io流。你的服务里面如果使用了fmt.Print 等,才会被supervisord 写入到指定的目录里面。
赞同幽灵的观点,不设置的话程序输出默认在stdout和stderr,但是如果你在程序代码把日志定向到其他地方,这里肯定不能获取日志的