class VidazingLogger::LoggerBuilder
Select where the logger will write to
@example 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 Logging.logger @since 0.2.0
Attributes
logger[R]
The resulting builder logger object
@return [Logging.logger]
Public Class Methods
build(name:) { |builder| ... }
click to toggle source
Create a new LoggerBuilder
@param name [String] Reference to obtain the logger. @return [Logging.logger]
# File lib/vidazing_logger/logger_builder.rb, line 35 def self.build(name:) builder = new(name: name) yield(builder) builder.logger end
new(name:)
click to toggle source
Sets up the underlying Logging.logger reference.
@param name [String] Reference to obtain the logger.
# 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
Public Instance Methods
add_build_log(log_dir:)
click to toggle source
Adds a VidazingLogger::Appender::BuildLog. Writes to log_dir
/build.log
@param log_dir [String] Directory to write logs in @return nil
# 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:)
click to toggle source
Adds a VidazingLogger::Appender::ErrorLog Writes to log_dir
/error.log
@param log_dir [String] Directory to write logs in @return nil
# 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_stderr()
click to toggle source
Outputs log messages to STDERR
@return nil
# 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_stdout()
click to toggle source
Outputs log messages to STDOUT
@return nil
# 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
Private Instance Methods
add_log(vidazing_appender:)
click to toggle source
# File lib/vidazing_logger/logger_builder.rb, line 95 def add_log(vidazing_appender:) logging_appender_type = Appenders::Type::ID_ROLLING_FILE add_logging_appender \ logging_appender_type, vidazing_appender: vidazing_appender end
add_logging_appender(logging_appender_type, vidazing_appender:)
click to toggle source
# File lib/vidazing_logger/logger_builder.rb, line 103 def add_logging_appender(logging_appender_type, vidazing_appender:) # Using public_send since ruby methods are not first class adapter = Appenders::LoggingGemAdapter.public_send \ logging_appender_type, vidazing_appender: vidazing_appender logging_appender = adapter.logging_appender @logger.add_appenders(logging_appender) self end