Class: Polytrix::Logger

Inherits:
Object
  • Object
show all
Includes:
Logger::Severity
Defined in:
lib/polytrix/logger.rb

Defined Under Namespace

Classes: LogdevLogger, StdoutLogger

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(options = {}) ⇒ Logger

Constructs a new logger.

Parameters:

  • options (Hash) (defaults to: {})

    configuration for a new logger

Options Hash (options):

  • :color (Symbol)

    color to use when when outputting messages

  • :level (Integer)

    the logging severity threshold (default: ‘Polytrix::DEFAULT_LOG_LEVEL`)

  • :logdev (String, IO)

    filepath String or IO object to be used for logging (default: ‘nil`)

  • :progname (String)

    program name to include in log messages (default: ‘“Polytrix”`)

  • :stdout (IO)

    a standard out IO object to use (default: ‘$stdout`)



24
25
26
27
28
29
30
31
32
33
34
# File 'lib/polytrix/logger.rb', line 24

def initialize(options = {})
  color = options[:color]

  @loggers = []
  @loggers << @logdev = logdev_logger(options[:logdev]) if options[:logdev]
  @loggers << stdout_logger(options[:stdout], color) if options[:stdout]
  @loggers << stdout_logger($stdout, color) if @loggers.empty?

  self.progname = options[:progname] || 'Polytrix'
  self.level = options[:level] || default_log_level
end

Instance Attribute Details

#logdevIO (readonly)

Returns the log device.

Returns:

  • (IO)

    the log device



9
10
11
# File 'lib/polytrix/logger.rb', line 9

def logdev
  @logdev
end

Class Method Details

.new_logger(implementor) ⇒ Object

(test, implementor, index)



36
37
38
39
40
41
42
43
44
45
46
# File 'lib/polytrix/logger.rb', line 36

def self.new_logger(implementor) # (test, implementor, index)
  name = implementor.name # instance_name(test, implementor)
  index = Polytrix.implementors.index(implementor) || 0
  Logger.new(
    stdout: STDOUT,
    color: Color::COLORS[index % Color::COLORS.size].to_sym,
    logdev: File.join(Polytrix.configuration.log_root, "#{name}.log"),
    level: Polytrix::Util.to_logger_level(Polytrix.configuration.log_level),
    progname: name
  )
end

Instance Method Details

#:<<(: <<()) ⇒ Object

Dump one or more messages to info.

Parameters:

  • message (#to_s)

    the message to log

See Also:



109
# File 'lib/polytrix/logger.rb', line 109

delegate_to_all_loggers :<<

#addObject

Log a message if the given severity is high enough.



103
# File 'lib/polytrix/logger.rb', line 103

delegate_to_all_loggers :add

Log a message with severity of banner (high level).

Parameters:

  • message_or_progname (#to_s)

    the message to log. In the block form, this is the progname to use in the log message.

Yields:

  • evaluates to the message to log. This is not evaluated unless the logger’s level is sufficient to log the message. This allows you to create potentially expensive logging messages that are only called when the logger is configured to show them.

Returns:

  • (nil, true)

    when the given severity is not high enough (for this particular logger), log no message, and return true

See Also:



122
# File 'lib/polytrix/logger.rb', line 122

delegate_to_all_loggers :banner

#closeObject

Close the logging devices.



230
# File 'lib/polytrix/logger.rb', line 230

delegate_to_all_loggers :close

#datetime_formatString

Returns the date format being used.

Returns:

  • (String)

    the date format being used

See Also:



92
# File 'lib/polytrix/logger.rb', line 92

delegate_to_first_logger :datetime_format

#datetime_format=Object

Sets the date format being used.

Parameters:

  • format (String)

    the date format

See Also:



98
# File 'lib/polytrix/logger.rb', line 98

delegate_to_all_loggers :datetime_format=

#debug { ... } ⇒ nil, true

Log a message with severity of debug.

Parameters:

  • message_or_progname (#to_s)

    the message to log. In the block form, this is the progname to use in the log message.

Yields:

  • evaluates to the message to log. This is not evaluated unless the logger’s level is sufficient to log the message. This allows you to create potentially expensive logging messages that are only called when the logger is configured to show them.

Returns:

  • (nil, true)

    when the given severity is not high enough (for this particular logger), log no message, and return true

See Also:



135
# File 'lib/polytrix/logger.rb', line 135

delegate_to_all_loggers :debug

#debug?true, false

Returns whether or not the current severity level allows for the printing of debug messages.

Returns:

  • (true, false)

    whether or not the current severity level allows for the printing of debug messages

See Also:



140
# File 'lib/polytrix/logger.rb', line 140

delegate_to_first_logger :debug?

#error { ... } ⇒ nil, true

Log a message with severity of error.

Parameters:

  • message_or_progname (#to_s)

    the message to log. In the block form, this is the progname to use in the log message.

Yields:

  • evaluates to the message to log. This is not evaluated unless the logger’s level is sufficient to log the message. This allows you to create potentially expensive logging messages that are only called when the logger is configured to show them.

Returns:

  • (nil, true)

    when the given severity is not high enough (for this particular logger), log no message, and return true

See Also:



171
# File 'lib/polytrix/logger.rb', line 171

delegate_to_all_loggers :error

#error?true, false

Returns whether or not the current severity level allows for the printing of error messages.

Returns:

  • (true, false)

    whether or not the current severity level allows for the printing of error messages

See Also:



176
# File 'lib/polytrix/logger.rb', line 176

delegate_to_first_logger :error?

#fatal { ... } ⇒ nil, true

Log a message with severity of fatal.

Parameters:

  • message_or_progname (#to_s)

    the message to log. In the block form, this is the progname to use in the log message.

Yields:

  • evaluates to the message to log. This is not evaluated unless the logger’s level is sufficient to log the message. This allows you to create potentially expensive logging messages that are only called when the logger is configured to show them.

Returns:

  • (nil, true)

    when the given severity is not high enough (for this particular logger), log no message, and return true

See Also:



207
# File 'lib/polytrix/logger.rb', line 207

delegate_to_all_loggers :fatal

#fatal?true, false

Returns whether or not the current severity level allows for the printing of fatal messages.

Returns:

  • (true, false)

    whether or not the current severity level allows for the printing of fatal messages

See Also:



212
# File 'lib/polytrix/logger.rb', line 212

delegate_to_first_logger :fatal?

#info { ... } ⇒ nil, true

Log a message with severity of info.

Parameters:

  • message_or_progname (#to_s)

    the message to log. In the block form, this is the progname to use in the log message.

Yields:

  • evaluates to the message to log. This is not evaluated unless the logger’s level is sufficient to log the message. This allows you to create potentially expensive logging messages that are only called when the logger is configured to show them.

Returns:

  • (nil, true)

    when the given severity is not high enough (for this particular logger), log no message, and return true

See Also:



153
# File 'lib/polytrix/logger.rb', line 153

delegate_to_all_loggers :info

#info?true, false

Returns whether or not the current severity level allows for the printing of info messages.

Returns:

  • (true, false)

    whether or not the current severity level allows for the printing of info messages

See Also:



158
# File 'lib/polytrix/logger.rb', line 158

delegate_to_first_logger :info?

#levelInteger

Returns the logging severity threshold.

Returns:

  • (Integer)

    the logging severity threshold

See Also:



72
# File 'lib/polytrix/logger.rb', line 72

delegate_to_first_logger :level

#level=Object

Sets the logging severity threshold.

Parameters:

  • level (Integer)

    the logging severity threshold

See Also:



78
# File 'lib/polytrix/logger.rb', line 78

delegate_to_all_loggers :level=

#prognameString

Returns program name to include in log messages.

Returns:

  • (String)

    program name to include in log messages

See Also:



82
# File 'lib/polytrix/logger.rb', line 82

delegate_to_first_logger :progname

#progname=Object

Sets the program name to include in log messages.

Parameters:

  • progname (String)

    the program name to include in log messages

See Also:



88
# File 'lib/polytrix/logger.rb', line 88

delegate_to_all_loggers :progname=

#unknown { ... } ⇒ nil, true

Log a message with severity of unknown.

Parameters:

  • message_or_progname (#to_s)

    the message to log. In the block form, this is the progname to use in the log message.

Yields:

  • evaluates to the message to log. This is not evaluated unless the logger’s level is sufficient to log the message. This allows you to create potentially expensive logging messages that are only called when the logger is configured to show them.

Returns:

  • (nil, true)

    when the given severity is not high enough (for this particular logger), log no message, and return true

See Also:



225
# File 'lib/polytrix/logger.rb', line 225

delegate_to_all_loggers :unknown

#warn { ... } ⇒ nil, true

Log a message with severity of warn.

Parameters:

  • message_or_progname (#to_s)

    the message to log. In the block form, this is the progname to use in the log message.

Yields:

  • evaluates to the message to log. This is not evaluated unless the logger’s level is sufficient to log the message. This allows you to create potentially expensive logging messages that are only called when the logger is configured to show them.

Returns:

  • (nil, true)

    when the given severity is not high enough (for this particular logger), log no message, and return true

See Also:



189
# File 'lib/polytrix/logger.rb', line 189

delegate_to_all_loggers :warn

#warn?true, false

Returns whether or not the current severity level allows for the printing of warn messages.

Returns:

  • (true, false)

    whether or not the current severity level allows for the printing of warn messages

See Also:



194
# File 'lib/polytrix/logger.rb', line 194

delegate_to_first_logger :warn?