2014-12-03 29 views
1

上帝重新启动进程时是否可以执行自定义代码?请参阅下面的示例我的意思。当监视从:转换到:启动(进程已重新启动)时,我们希望以sysloglog的错误级别发送日志。 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 

当前,我在加载watch config时看到系统日志中的消息。如何在特定的转换中记录syslog中的错误?

回答

0

我试着在God中添加一个新的Contact,方法是定义一个Contact并通过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