2014-12-03 63 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