Class: Logger::Application
- Inherits:
-
Object
- Object
- Logger::Application
- Includes:
- Severity
- Defined in:
- lib/logger/application.rb,
lib/logger/application/version.rb
Overview
Description
Logger::Application — Add logging support to your application.
Usage
-
Define your application class as a sub-class of this class.
-
Override the
run
method in your class to do many things. -
Instantiate it and invoke #start.
Example
class FooApp < Logger::Application
def initialize(foo_app, application_specific, arguments)
super('FooApp') # Name of the application.
end
def run
...
log(WARN, 'warning', 'my_method1')
...
@log.error('my_method2') { 'Error!' }
...
end
end
status = FooApp.new(....).start
Constant Summary collapse
- VERSION =
"0.0.2"
Instance Attribute Summary collapse
-
#appname ⇒ Object
readonly
Name of the application given at initialize.
Instance Method Summary collapse
-
#initialize(appname = nil) ⇒ Application
constructor
:call-seq: Logger::Application.new(appname = ”).
-
#level=(level) ⇒ Object
Set the logging threshold, just like
Logger#level=
. -
#log(severity, message = nil, &block) ⇒ Object
See Logger#add.
- #log=(logdev) ⇒ Object
-
#logger ⇒ Object
Logger for this application.
-
#logger=(logger) ⇒ Object
Sets the logger for this application.
-
#set_log(logdev, shift_age = 0, shift_size = 1024000) ⇒ Object
Sets the log device for this application.
-
#start ⇒ Object
Start the application.
Constructor Details
#initialize(appname = nil) ⇒ Application
:call-seq:
Logger::Application.new(appname = '')
Args
appname
-
Name of the application.
Description
Create an instance. Log device is STDERR
by default. This can be changed with #set_log.
53 54 55 56 57 58 |
# File 'lib/logger/application.rb', line 53 def initialize(appname = nil) @appname = appname @log = Logger.new(STDERR) @log.progname = @appname @level = @log.level end |
Instance Attribute Details
#appname ⇒ Object (readonly)
Name of the application given at initialize.
38 39 40 |
# File 'lib/logger/application.rb', line 38 def appname @appname end |
Instance Method Details
#level=(level) ⇒ Object
Set the logging threshold, just like Logger#level=
.
108 109 110 111 |
# File 'lib/logger/application.rb', line 108 def level=(level) @level = level @log.level = @level end |
#log(severity, message = nil, &block) ⇒ Object
See Logger#add. This application’s appname
is used.
116 117 118 |
# File 'lib/logger/application.rb', line 116 def log(severity, = nil, &block) @log.add(severity, , @appname, &block) if @log end |
#log=(logdev) ⇒ Object
101 102 103 |
# File 'lib/logger/application.rb', line 101 def log=(logdev) set_log(logdev) end |
#logger ⇒ Object
Logger for this application. See the class Logger for an explanation.
77 78 79 |
# File 'lib/logger/application.rb', line 77 def logger @log end |
#logger=(logger) ⇒ Object
Sets the logger for this application. See the class Logger for an explanation.
85 86 87 88 89 |
# File 'lib/logger/application.rb', line 85 def logger=(logger) @log = logger @log.progname = @appname @log.level = @level end |
#set_log(logdev, shift_age = 0, shift_size = 1024000) ⇒ Object
Sets the log device for this application. See Logger.new
for an explanation of the arguments.
95 96 97 98 99 |
# File 'lib/logger/application.rb', line 95 def set_log(logdev, shift_age = 0, shift_size = 1024000) @log = Logger.new(logdev, shift_age, shift_size) @log.progname = @appname @log.level = @level end |
#start ⇒ Object
Start the application. Return the status code.
63 64 65 66 67 68 69 70 71 72 73 74 |
# File 'lib/logger/application.rb', line 63 def start status = -1 begin log(INFO, "Start of #{ @appname }.") status = run rescue log(FATAL, "Detected an exception. Stopping ... #{$!} (#{$!.class})\n" << $@.join("\n")) ensure log(INFO, "End of #{ @appname }. (status: #{ status })") end status end |