Class | Logger::Application
In: | logger.rb
Parent: | Object

## Description

Application — Add logging support to your application.

## Usage

1. Define your application class as a sub-class of this class.
2. Override ‘run’ method in your class to do many things.
3. Instantiate it and invoke ‘start’.

## Example

      class FooApp < 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

### Methods

level= log log= new set_log start

### Included Modules

Logger::Severity

### Attributes

appname | [R] |
logdev | [R] |

### Public Class methods

new(appname = nil)

## Synopsis

      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.

[Source]

    # File logger.rb, line 654
        def initialize(appname = nil)
          @appname = appname
          @log = Logger.new(STDERR)
          @log.progname = @appname
          @level = @log.level
        end

### Public Instance methods

level=(level)

Set the logging threshold, just like `Logger#level=`.

[Source]

    # File logger.rb, line 694
        def level=(level)
          @level = level
          @log.level = @level
        end

log(severity, message = nil, &block)

See Logger#add. This application’s `appname` is used.

[Source]

    # File logger.rb, line 702
        def log(severity, message = nil, &block)
          @log.add(severity, message, @appname, &block) if @log
        end

log=(logdev)

[Source]

    # File logger.rb, line 687
        def log=(logdev)
          set_log(logdev)
        end

set_log(logdev, shift_age = 0, shift_size = 1024000)

Sets the log device for this application. See the class Logger for an explanation of the arguments.

[Source]

    # File logger.rb, line 681
        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()

Start the application. Return the status code.

[Source]

    # File logger.rb, line 664
        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.to_s })")
          end
          status
        end

[Validate]