上帝重启进程时是否可以执行自定义代码。请参阅下面的示例我的意思。当监视从:转换为:start(重新启动进程)时,我们希望将日志发送到syslog:error level。 applog是上帝模块中定义的方法。
w.transition(:up, :start) do |on|
applog(w, :error, "critical server process exited")
on.condition(:process_exits) do |c|
c.notify = 'alerts'
end
end
目前,我在加载监视配置时在syslog中看到消息。如何在某个转换中记录syslog中的错误?
答案 0 :(得分:0)
我尝试通过定义一个联系人并通过God.contact()加载一个新的联系人。遇到缺少姓名等的错误。不知道如何注册。更好的方法是分叉宝石并添加一个新的联系人,但这意味着在我们的基础设施中改变很多。下面的方法是我现在最终使用的....涉及猴子修补。
module God
class Task
alias gods_notify notify
def notify(condition, message)
applog(nil, :error, "@cee: {\"alert\": \"true\", \"category\": \"alert.#{condition.to_s}\", \"content\": \"#{message}\"}")
gods_notify(condition, message)
end
end
end