Class: Yell::Event

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

Overview

Yell::Event.new( :info, ‘Hello World’, { :scope => ‘Application’ } ) #=> Hello World scope: Application

Defined Under Namespace

Classes: Options

Constant Summary collapse

CallerRegexp =

regex to fetch caller attributes

/^(.+?):(\d+)(?::in `(.+)')?/
CallerIndex =

jruby and rubinius seem to have a different caller

defined?(RUBY_ENGINE) && ["rbx", "jruby"].include?(RUBY_ENGINE) ? 1 : 2
@@hostname =

Prefetch those values (no need to do that on every new instance)

Socket.gethostname rescue nil
@@progname =
$0

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(logger, options, *messages) ⇒ Event

Returns a new instance of Event.



52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
# File 'lib/yell/event.rb', line 52

def initialize( logger, options, *messages)
  @time = Time.now
  @name = logger.name

  extract!(options)

  @messages = messages

  @caller = logger.trace.at?(level) ? caller[caller_index].to_s : ''
  @file = nil
  @line = nil
  @method = nil

  @pid = nil
end

Instance Attribute Details

#levelObject (readonly)

Accessor to the log level



40
41
42
# File 'lib/yell/event.rb', line 40

def level
  @level
end

#messagesObject (readonly)

Accessor to the log message



43
44
45
# File 'lib/yell/event.rb', line 43

def messages
  @messages
end

#nameObject (readonly)

Accessor to the logger’s name



49
50
51
# File 'lib/yell/event.rb', line 49

def name
  @name
end

#timeObject (readonly)

Accessor to the time the log event occured



46
47
48
# File 'lib/yell/event.rb', line 46

def time
  @time
end

Instance Method Details

#fileObject

Accessor to filename the log event occured



89
90
91
# File 'lib/yell/event.rb', line 89

def file
  @file || (backtrace!; @file)
end

#hostnameObject

Accessor to the hostname



69
70
71
# File 'lib/yell/event.rb', line 69

def hostname
  @@hostname
end

#lineObject

Accessor to the line the log event occured



94
95
96
# File 'lib/yell/event.rb', line 94

def line
  @line || (backtrace!; @line)
end

#methodObject

Accessor to the method the log event occured



99
100
101
# File 'lib/yell/event.rb', line 99

def method
  @method || (backtrace!; @method)
end

#pidObject

Accessor to the PID



79
80
81
# File 'lib/yell/event.rb', line 79

def pid
  Process.pid
end

#prognameObject

Accessor to the progname



74
75
76
# File 'lib/yell/event.rb', line 74

def progname
  @@progname
end

#thread_idObject

Accessor to the thread’s id



84
85
86
# File 'lib/yell/event.rb', line 84

def thread_id
  Thread.current.object_id
end