Class: WCC::SyslogNotificator
- Inherits:
-
Object
- Object
- WCC::SyslogNotificator
- Defined in:
- lib/wcc/syslog.rb
Constant Summary collapse
- LEVELS =
['crit', 'emerg', 'alert', 'err', 'warning', 'notice', 'info', 'debug']
Class Method Summary collapse
Instance Method Summary collapse
-
#initialize(opts) ⇒ SyslogNotificator
constructor
A new instance of SyslogNotificator.
-
#notify!(data) ⇒ Object
TODO: ERB template for syslog.
Constructor Details
#initialize(opts) ⇒ SyslogNotificator
Returns a new instance of SyslogNotificator.
7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 |
# File 'lib/wcc/syslog.rb', line 7 def initialize(opts) if LEVELS.include?(opts) @prio = opts @enable = true else @enable = false raise ArgumentError, "The given priority '#{opts}' is not known, use one of: #{LEVELS.join(', ')}." end begin # from ruby std lib require 'syslog' rescue LoadError @enable = false raise ArgumentError, "Won't log to syslog since your system does NOT support syslog!" end end |
Class Method Details
.parse_conf(conf) ⇒ Object
31 |
# File 'lib/wcc/syslog.rb', line 31 def self.parse_conf(conf); {} end |
.shut_down ⇒ Object
33 |
# File 'lib/wcc/syslog.rb', line 33 def self.shut_down; end |
Instance Method Details
#notify!(data) ⇒ Object
TODO: ERB template for syslog
25 26 27 28 29 |
# File 'lib/wcc/syslog.rb', line 25 def notify!(data) Syslog.open(data.tag, Syslog::LOG_PID | Syslog::LOG_CONS) do |s| s.send(@prio.to_sym, "Change at #{data.site.uri.to_s} (tag #{data.site.id}) detected") end if @enable end |