-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Refactored after adding dev:quality checks to improve code quality.
Appenders are now split up into their own class in appenders. Easier to reason about.
- Loading branch information
Showing
12 changed files
with
245 additions
and
122 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,13 @@ | ||
# frozen_string_literal: true | ||
|
||
require 'logging' | ||
|
||
module VidazingLogger | ||
# Base Appender for logging | ||
# Determines how to log messages. Attaches to Logging.logger | ||
# | ||
# @api private | ||
module Appenders | ||
|
||
end | ||
end |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,36 @@ | ||
# frozen_string_literal: true | ||
|
||
require 'vidazing_logger/color_scheme' | ||
require 'vidazing_logger/filters/normal' | ||
require 'vidazing_logger/appenders' | ||
require 'logging' | ||
|
||
module VidazingLogger | ||
module Appenders | ||
# Appender writing to 'logs/build.log' | ||
# | ||
# @api private | ||
class BuildLog | ||
attr_reader :appender | ||
|
||
def initialize(log_dir) | ||
build_log_path = "#{log_dir}/build.log" | ||
|
||
color_scheme_name = 'vidazing_stdout' | ||
VidazingLogger::ColorScheme.create(color_scheme_name, date_color: :blue) | ||
|
||
build_log_appender_name = build_log_path | ||
@appender =Logging.appenders.rolling_file \ | ||
build_log_appender_name, | ||
layout: VidazingLogger::LayoutPattern.new(color_scheme_name).layout, | ||
age: 'daily', | ||
keep: 7, | ||
filters: VidazingLogger::Filters::Normal.new.filter | ||
|
||
Logging.appenders[build_log_appender_name] | ||
end | ||
|
||
end | ||
end | ||
end | ||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,36 @@ | ||
# frozen_string_literal: true | ||
|
||
require 'vidazing_logger/color_scheme' | ||
require 'vidazing_logger/filters/error' | ||
require 'vidazing_logger/appenders' | ||
require 'logging' | ||
|
||
module VidazingLogger | ||
module Appenders | ||
# Appender writing to 'logs/error.log' | ||
# | ||
# @api private | ||
class ErrorLog | ||
attr_reader :appender | ||
|
||
def initialize(log_dir) | ||
error_log_path = "#{log_dir}/error.log" | ||
|
||
color_scheme_name = 'vidazing_stderr' | ||
VidazingLogger::ColorScheme.create(color_scheme_name, date_color: :red) | ||
|
||
error_log_appender_name = error_log_path | ||
@appender =Logging.appenders.rolling_file \ | ||
error_log_appender_name, | ||
layout: VidazingLogger::LayoutPattern.new(color_scheme_name).layout, | ||
age: 'daily', | ||
keep: 7, | ||
filters: VidazingLogger::Filters::Error.new.filter | ||
|
||
Logging.appenders[error_log_appender_name] | ||
end | ||
|
||
end | ||
end | ||
end | ||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,64 +1,31 @@ | ||
# frozen_string_literal: true | ||
|
||
require 'vidazing_logger/filters/error' | ||
require 'vidazing_logger/color_scheme' | ||
require 'vidazing_logger/appenders' | ||
require 'logging' | ||
|
||
# Determines how to log messages. Attaches to Logging.logger | ||
# @api private | ||
module VidazingLogger | ||
module Appenders | ||
# Appender writing to STDERR and 'logs/error.log' | ||
# Appender writing to STDERR | ||
# | ||
# @api private | ||
module Stderr | ||
class << self | ||
APPENDER_STDERR = 'STDERR' | ||
def stderr_appender | ||
Logging.appenders.stderr \ | ||
APPENDER_STDERR, | ||
layout: readable_error_layout_pattern, | ||
level: :error | ||
end | ||
class Stderr | ||
attr_reader :appender | ||
|
||
def error_log_appender(log_dir) | ||
error_log_path = "#{log_dir}/error.log" | ||
def initialize | ||
color_scheme_name = 'vidazing_stderr' | ||
VidazingLogger::ColorScheme.create(color_scheme_name, date_color: :red) | ||
|
||
appender_error_log = error_log_path | ||
Logging.appenders.rolling_file \ | ||
appender_error_log, | ||
layout: readable_error_layout_pattern, | ||
age: 'daily', | ||
keep: 7, | ||
level: :error | ||
stderr_appender_name = "STDERR" | ||
@appender = Logging.appenders.stderr \ | ||
stderr_appender_name, | ||
layout: VidazingLogger::LayoutPattern.new(color_scheme_name).layout, | ||
filters: VidazingLogger::Filters::Error.new.filter | ||
|
||
Logging.appenders[appender_error_log] | ||
end | ||
|
||
private | ||
|
||
# ----- BUILD STDERR + LOG ----- | ||
|
||
# Logging holds the color scheme reference | ||
ERROR_LOG_COLOR_SCHEME = 'bright_error' | ||
Logging.color_scheme( | ||
ERROR_LOG_COLOR_SCHEME, | ||
levels: { | ||
info: :green, | ||
warn: :yellow, | ||
error: :red, | ||
fatal: %i[white on_red] | ||
}, | ||
date: :red, | ||
logger: :cyan, | ||
message: :magenta | ||
) | ||
|
||
def readable_error_layout_pattern | ||
Logging.layouts.pattern \ | ||
pattern: '[%d] %-5l %c: %m\n', | ||
# ISO8601 without the 'T' | ||
date_pattern: '%Y-%m-%d %H:%M:%S', | ||
color_scheme: ERROR_LOG_COLOR_SCHEME | ||
end | ||
Logging.appenders[stderr_appender_name] | ||
end | ||
|
||
end | ||
end | ||
end |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,71 +1,32 @@ | ||
# frozen_string_literal: true | ||
|
||
require 'vidazing_logger/color_scheme' | ||
require 'vidazing_logger/filters/normal' | ||
require 'vidazing_logger/layout' | ||
require 'vidazing_logger/appenders' | ||
require 'logging' | ||
|
||
module VidazingLogger | ||
module Appenders | ||
# Appender writing to STDOUT and 'logs/build.log' | ||
# Appender writing to STDOUT | ||
# | ||
# @api private | ||
module Stdout | ||
class << self | ||
APPENDER_STDOUT = 'STDOUT' | ||
def stdout_appender | ||
Logging.appenders.stdout \ | ||
APPENDER_STDOUT, | ||
layout: readable_layout_pattern, | ||
filters: stdout_levels | ||
class Stdout | ||
attr_reader :appender | ||
|
||
Logging.appenders[APPENDER_STDOUT] | ||
end | ||
def initialize | ||
color_scheme_name = 'vidazing_stdout' | ||
VidazingLogger::ColorScheme.create(color_scheme_name, date_color: :blue) | ||
|
||
def build_log_appender(log_dir) | ||
build_log_path = "#{log_dir}/build.log" | ||
stdout_appender_name = 'STDOUT' | ||
@appender =Logging.appenders.stdout \ | ||
stdout_appender_name, | ||
layout: VidazingLogger::LayoutPattern.new(color_scheme_name).layout, | ||
filters: VidazingLogger::Filters::Normal.new.filter | ||
|
||
appender_build_log = build_log_path | ||
Logging.appenders.rolling_file \ | ||
appender_build_log, | ||
layout: readable_layout_pattern, | ||
age: 'daily', | ||
keep: 7, | ||
filters: stdout_levels | ||
|
||
Logging.appenders[appender_build_log] | ||
end | ||
|
||
private | ||
|
||
#----- BUILD STDOUT + LOG ----- | ||
|
||
# Logging holds the color scheme reference | ||
LOG_COLOR_SCHEME = 'bright' | ||
Logging.color_scheme( | ||
LOG_COLOR_SCHEME, | ||
levels: { | ||
info: :green, | ||
warn: :yellow, | ||
error: :red, | ||
fatal: %i[white on_red] | ||
}, | ||
date: :blue, | ||
logger: :cyan, | ||
message: :magenta | ||
) | ||
|
||
def readable_layout_pattern | ||
Logging.layouts.pattern \ | ||
pattern: '[%d] %-5l %c: %m\n', | ||
# ISO8601 without the 'T' | ||
date_pattern: '%Y-%m-%d %H:%M:%S', | ||
color_scheme: LOG_COLOR_SCHEME | ||
end | ||
|
||
def stdout_levels | ||
Logging::Filters::Level.new \ | ||
:debug, | ||
:info, | ||
:warn | ||
end | ||
Logging.appenders[stdout_appender_name] | ||
end | ||
|
||
end | ||
end | ||
end |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,27 @@ | ||
# frozen_string_literal: true | ||
|
||
require 'logging' | ||
|
||
module VidazingLogger | ||
# Set logging colors | ||
# | ||
# @api private | ||
module ColorScheme | ||
def self.create(name, date_color:) # rubocop:disable Metrics/MethodLength, Metrics/LineLength | ||
# Logging holds the color scheme reference | ||
Logging.color_scheme( | ||
name, | ||
levels: { | ||
info: :green, | ||
warn: :yellow, | ||
error: :red, | ||
fatal: %i[white on_red] | ||
}, | ||
date: date_color, | ||
logger: :cyan, | ||
message: :magenta | ||
) | ||
end | ||
end | ||
end | ||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,21 @@ | ||
# frozen_string_literal: true | ||
|
||
require 'logging' | ||
|
||
module VidazingLogger | ||
module Filters | ||
# Filter for non error message | ||
# | ||
# @api private | ||
class Error | ||
attr_reader :filter | ||
|
||
def initialize | ||
@filter = Logging::Filters::Level.new \ | ||
:error, | ||
:fatal | ||
end | ||
|
||
end | ||
end | ||
end |
Oops, something went wrong.