Class: TeeLogger::TeeLoggerBase

Inherits:
Object
  • Object
show all
Includes:
Utils
Defined in:
lib/tee_logger/tee_logger_base.rb

Overview

main

See Also:

Class Method Summary collapse

Instance Method Summary collapse

Methods included from Utils

#correct_name?, #extract_options, #formatting, #incorrect_name_error, #incorrect_option_error, #indentation, #logdev_instance, #name_reverse

Constructor Details

#initialize(logdev = nil, shift_age = 0, shift_size = 1_048_576) ⇒ TeeLoggerBase

Returns a new instance of TeeLoggerBase.

Parameters:

  • logdev (String) (defaults to: nil)
  • shift_age (Integer) (defaults to: 0)
  • shift_size (Integer) (defaults to: 1_048_576)

See Also:

  • Logger#initialize


47
48
49
50
51
52
53
# File 'lib/tee_logger/tee_logger_base.rb', line 47

def initialize(logdev = nil, shift_age = 0, shift_size = 1_048_576)
  @console = Logger.new($stdout)
  @logfile = Logger.new(logdev || TeeLogger.logdev, shift_age, shift_size)

  @level, @progname, @formatter, @datetime_format = nil
  configuration
end

Class Method Details

.define_logging_methods(name) ⇒ Object



18
19
20
21
22
23
24
# File 'lib/tee_logger/tee_logger_base.rb', line 18

def define_logging_methods(name)
  define_method(name) do |progname = nil, *options, &block|
    logdev_name, indent_level = extract_options(options).values
    progname, block = indentation(progname, block, indent_level)
    logging(name, progname, logdev_name, &block)
  end
end

.define_loglevel_check_methods(name) ⇒ Object



30
31
32
33
34
35
# File 'lib/tee_logger/tee_logger_base.rb', line 30

def define_loglevel_check_methods(name)
  define_method(name) do
    @console.send(name)
    @logfile.send(name)
  end
end

Instance Method Details

#datetime_format=(datetime_format) ⇒ Object

Parameters:

  • datetime_format


85
86
87
88
89
# File 'lib/tee_logger/tee_logger_base.rb', line 85

def datetime_format=(datetime_format)
  @console.datetime_format =
    @logfile.datetime_format =
      @datetime_format = datetime_format
end

#debug(progname = nil, *options, &block) ⇒ Object

logging debug level message.

Parameters:

  • progname (defaults to: nil)

    see also Logger

  • options (Array)
  • &block

    see also Logger

Options Hash (*options):

  • indent_level (Fixnum)
  • enabling_target (Symbol)

    valid values => [:console, :logfile]

Returns:

  • true

See Also:

  • Logger


55
# File 'lib/tee_logger/tee_logger_base.rb', line 55

define_logging_methods :debug

#debug?(name) ⇒ Boolean

Returns:

  • (Boolean)


61
# File 'lib/tee_logger/tee_logger_base.rb', line 61

define_loglevel_check_methods :debug?

#disable(logdev_name) { ... } ⇒ Object

Parameters:

  • logdev_name (String, Symbol)

Yields:

  • before logdev_name disable, after logdev_name enable.



93
94
95
96
97
98
99
100
101
102
# File 'lib/tee_logger/tee_logger_base.rb', line 93

def disable(logdev_name)
  correct_name?(logdev_name)
  if block_given?
    disable(logdev_name)
    yield
    enable(logdev_name)
  else
    logdev_instance(logdev_name).formatter = FORMATTER_FOR_DISABLING
  end
end

#enable(logdev_name) ⇒ Object

Parameters:

  • logdev_name (String, Symbol)


105
106
107
108
# File 'lib/tee_logger/tee_logger_base.rb', line 105

def enable(logdev_name)
  correct_name?(logdev_name)
  logdev_instance(logdev_name).formatter = @formatter
end

#error(progname = nil, *options, &block) ⇒ Object

logging error level message.

Parameters:

  • progname (defaults to: nil)

    see also Logger

  • options (Array)
  • &block

    see also Logger

Options Hash (*options):

  • indent_level (Fixnum)
  • enabling_target (Symbol)

    valid values => [:console, :logfile]

Returns:

  • true

See Also:

  • Logger


58
# File 'lib/tee_logger/tee_logger_base.rb', line 58

define_logging_methods :error

#error?(name) ⇒ Boolean

Returns:

  • (Boolean)


64
# File 'lib/tee_logger/tee_logger_base.rb', line 64

define_loglevel_check_methods :error?

#fatal(progname = nil, *options, &block) ⇒ Object

logging fatal level message.

Parameters:

  • progname (defaults to: nil)

    see also Logger

  • options (Array)
  • &block

    see also Logger

Options Hash (*options):

  • indent_level (Fixnum)
  • enabling_target (Symbol)

    valid values => [:console, :logfile]

Returns:

  • true

See Also:

  • Logger


59
# File 'lib/tee_logger/tee_logger_base.rb', line 59

define_logging_methods :fatal

#fatal?(name) ⇒ Boolean

Returns:

  • (Boolean)


65
# File 'lib/tee_logger/tee_logger_base.rb', line 65

define_loglevel_check_methods :fatal?

#formatter=(formatter) ⇒ Object

Parameters:

  • formatter


80
81
82
# File 'lib/tee_logger/tee_logger_base.rb', line 80

def formatter=(formatter)
  @console.formatter = @logfile.formatter = @formatter = formatter
end

#info(progname = nil, *options, &block) ⇒ Object

logging info level message.

Parameters:

  • progname (defaults to: nil)

    see also Logger

  • options (Array)
  • &block

    see also Logger

Options Hash (*options):

  • indent_level (Fixnum)
  • enabling_target (Symbol)

    valid values => [:console, :logfile]

Returns:

  • true

See Also:

  • Logger


56
# File 'lib/tee_logger/tee_logger_base.rb', line 56

define_logging_methods :info

#info?(name) ⇒ Boolean

Returns:

  • (Boolean)


62
# File 'lib/tee_logger/tee_logger_base.rb', line 62

define_loglevel_check_methods :info?

#level=(level) ⇒ Object Also known as: sev_threshold=

Parameters:

  • level (Integer)


68
69
70
# File 'lib/tee_logger/tee_logger_base.rb', line 68

def level=(level)
  @console.level = @logfile.level = @level = level
end

#progname=(name = nil) ⇒ Object

Parameters:

  • name (String, Symbol) (defaults to: nil)


75
76
77
# File 'lib/tee_logger/tee_logger_base.rb', line 75

def progname=(name = nil)
  @console.progname = @logfile.progname = @progname = name
end

#warn(progname = nil, *options, &block) ⇒ Object

logging warn level message.

Parameters:

  • progname (defaults to: nil)

    see also Logger

  • options (Array)
  • &block

    see also Logger

Options Hash (*options):

  • indent_level (Fixnum)
  • enabling_target (Symbol)

    valid values => [:console, :logfile]

Returns:

  • true

See Also:

  • Logger


57
# File 'lib/tee_logger/tee_logger_base.rb', line 57

define_logging_methods :warn

#warn?(name) ⇒ Boolean

Returns:

  • (Boolean)


63
# File 'lib/tee_logger/tee_logger_base.rb', line 63

define_loglevel_check_methods :warn?