Class: GreenSyslogger

Inherits:
Object
  • Object
show all
Defined in:
lib/green_syslogger.rb

Overview

Custom log

To install it cofigure it on the <RAILS_ENVIRONMENT>.rb:

config.logger = GreenSyslogger.new(<default tag>, <facility>, <level>)

By default

GreenSyslogger.new('rails', 'local2', :debug)

To use it:

logger.debug("my debug message")
logger.error("my error message")

To user another tag:

logger.custom("my custom message", <tag>, <level>)

By default:

logger.custom("my custom message", 'custom', :info)

Constant Summary collapse

LEVELS_MAP =

Mapping between Logger levels and Syslog levels

{
  :debug    => [:debug    , 0],
  :info     => [:info     , 1],
  :warn     => [:warning  , 2],
  :error    => [:err      , 3],
  :fatal    => [:emerg    , 4],
  :unknown  => [:debub    , 5]
}
DEFAULT_CONF =
[ Syslog::LOG_PID, Syslog::LOG_LOCAL2 ]

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(tag = 'rails', facility = 'local2', level = :debug) ⇒ GreenSyslogger

Returns a new instance of GreenSyslogger.



40
41
42
43
44
45
# File 'lib/green_syslogger.rb', line 40

def initialize(tag = 'rails', facility = 'local2', level = :debug)
  @tag = tag
  @facility = facility
  @level = level
  @syslog = Syslog.open( @tag, Syslog::LOG_PID, Syslog.const_get( "LOG_#{@facility.upcase}" ) )
end

Instance Attribute Details

#levelObject

Returns the value of attribute level.



26
27
28
# File 'lib/green_syslogger.rb', line 26

def level
  @level
end

Instance Method Details

#closeObject



47
48
49
# File 'lib/green_syslogger.rb', line 47

def close
  @syslog.close
end

#custom(message, tag = 'custom', level = :info) ⇒ Object

level default to ‘info’ tag default ‘ids-custom’



57
58
59
60
61
# File 'lib/green_syslogger.rb', line 57

def custom(message, tag = 'custom', level = :info)
  @syslog = Syslog.reopen( tag, Syslog::LOG_PID, Syslog.const_get( "LOG_#{@facility.upcase}" ) )
  self.log(message, level)
  @syslog = Syslog.reopen( @tag, Syslog::LOG_PID, Syslog.const_get( "LOG_#{@facility.upcase}" ) )
end

#log(message, level = :info) ⇒ Object

level default to ‘info’



64
65
66
67
# File 'lib/green_syslogger.rb', line 64

def log(message, level = :info)
  # File.open("/tmp/ids.log", 'w') { |f| f.write(message) }
  @syslog.send( LEVELS_MAP[level][0], clean( message ) )
end

#opened?Boolean

Returns:

  • (Boolean)


51
52
53
# File 'lib/green_syslogger.rb', line 51

def opened?
  @syslog.opened?
end