Class: VidazingLogger::LoggerBuilder

Inherits:
Object
  • Object
show all
Defined in:
lib/vidazing_logger/logger_builder.rb

Overview

Select where the logger will write to

Examples:

Building a Logger

LoggerBuilder.build(name: @name) do |builder|
  builder
    .add_stdout
    .add_build_log(log_dir: @log_dir)
    .add_stderr
    .add_error_log(log_dir: @log_dir)

See Also:

  • Logging.logger

Since:

  • 0.2.0

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(name:) ⇒ LoggerBuilder

Sets up the underlying Logging.logger reference.

Parameters:

  • name (String)

    Reference to obtain the logger.

Since:

  • 0.2.0



44
45
46
47
48
49
50
51
# File 'lib/vidazing_logger/logger_builder.rb', line 44

def initialize(name:)
  # Create a logger before any appenders
  # Avoids a situation where Filters::Normal levels are nil
  #
  # Logging::Filters::Level.new bug:
  # @filter has nil levels set on the first invocation
  @logger = Logging.logger[name]
end

Instance Attribute Details

#loggerLogging.logger (readonly)

The resulting builder logger object

Returns:

Since:

  • 0.2.0



29
30
31
# File 'lib/vidazing_logger/logger_builder.rb', line 29

def logger
  @logger
end

Class Method Details

.build(name:) {|builder| ... } ⇒ Logging.logger

Create a new LoggerBuilder

Parameters:

  • name (String)

    Reference to obtain the logger.

Yields:

  • (builder)

Returns:

Since:

  • 0.2.0



35
36
37
38
39
# File 'lib/vidazing_logger/logger_builder.rb', line 35

def self.build(name:)
  builder = new(name: name)
  yield(builder)
  builder.logger
end

Instance Method Details

#add_build_log(log_dir:) ⇒ Object

Adds a VidazingLogger::Appender::BuildLog. Writes to log_dir/build.log

Parameters:

  • log_dir (String)

    Directory to write logs in

Returns:

  • nil

Since:

  • 0.2.0



78
79
80
81
# File 'lib/vidazing_logger/logger_builder.rb', line 78

def add_build_log(log_dir:)
  appender = Appenders::BuildLog.new(log_dir: log_dir)
  add_log(vidazing_appender: appender)
end

#add_error_log(log_dir:) ⇒ Object

Adds a VidazingLogger::Appender::ErrorLog Writes to log_dir/error.log

Parameters:

  • log_dir (String)

    Directory to write logs in

Returns:

  • nil

Since:

  • 0.2.0



88
89
90
91
# File 'lib/vidazing_logger/logger_builder.rb', line 88

def add_error_log(log_dir:)
  appender = Appenders::ErrorLog.new(log_dir: log_dir)
  add_log(vidazing_appender: appender)
end

#add_stderrObject

Outputs log messages to STDERR

Returns:

  • nil

Since:

  • 0.2.0



66
67
68
69
70
71
# File 'lib/vidazing_logger/logger_builder.rb', line 66

def add_stderr
  appender = Appenders::Stderr.new
  logging_appender_type = Appenders::Type::ID_STDERR

  add_logging_appender(logging_appender_type, vidazing_appender: appender)
end

#add_stdoutObject

Outputs log messages to STDOUT

Returns:

  • nil

Since:

  • 0.2.0



56
57
58
59
60
61
# File 'lib/vidazing_logger/logger_builder.rb', line 56

def add_stdout
  appender = Appenders::Stdout.new
  logging_appender_type = Appenders::Type::ID_STDOUT

  add_logging_appender(logging_appender_type, vidazing_appender: appender)
end