是否有任何有效的方法可以轻松地在Unix下获取Go程序的恐慌日志?

Rec*_*Hou 4 unix linux logging go panic

由于我正在运行Go程序作为服务器,我需要一些机制来捕获恐慌日志,如果出现任何问题,以便以后进行分析和调试.是否有任何有效的方法可以轻松地在Unix下获取Go程序的恐慌日志?你们能介绍一下你的经历吗?谢谢 :)

Dus*_*tin 7

我在手机上收到一些通知,告诉我一些致命的恐慌.这是如何做:

首先,我通常在daemontools(或类似)下运行所有​​内容,因此它会被监视并在失败时重新启动.

然后,我通常使用内置日志包登录到syslog.我的系统日志转发到papertrail,在那里我可以查看事物的状态,设置警报等等......我在这里将不良事件通知转发到电子邮件地址并通知myandroid,这样我就可以了解问题,搜索类似的近期问题,看看问题的背景等等......

...但你不能记录你自己未捕获的致命恐慌,所以我写了logexec来执行程序并单独记录它的stdout和stderr以及不成功的退出通知.

例:

logexec -tag myprogram /path/to/myprogram -and -its arguments
Run Code Online (Sandbox Code Playgroud)