Module: OsCtl::Lib::Logger

Defined in:
lib/libosctl/logger.rb

Class Method Summary collapse

Class Method Details

.log(severity, msg) ⇒ Object



34
35
36
37
38
# File 'lib/libosctl/logger.rb', line 34

def self.log(severity, msg)
  return if @logger == :none
  @logger.send(severity, msg)
  STDOUT.flush if @logger.is_a?(::Logger)
end

.setup(type, opts = {}) ⇒ Object

Parameters:

  • type (Symbol)

    `:stdout`, `:io`, `:syslog` or `:none`

  • opts (Hash) (defaults to: {})

Options Hash (opts):

  • :io (IO)
  • :name (String)

    program name for syslog

  • :facility (String)

    syslog facility, see man syslog(3), in lower case, without `LOG_` prefix



9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
# File 'lib/libosctl/logger.rb', line 9

def self.setup(type, opts = {})
  case type
  when :stdout
    require 'logger'
    @logger = ::Logger.new(STDOUT)

  when :io
    require 'logger'
    @logger = ::Logger.new(opts[:io])

  when :syslog
    require 'syslog/logger'
    @logger = Syslog::Logger.new(
      opts[:name] || File.basename($0),
      Syslog.const_get(:"LOG_#{(opts[:facility] || 'daemon').upcase}")
    )

  when :none
    @logger = :none

  else
    fail "unsupported logger type '#{type}'"
  end
end