no more ansi_filter
This commit is contained in:
@@ -82,12 +82,12 @@ Rails.application.configure do # rubocop:disable Metrics/BlockLength
|
|||||||
config.rails_semantic_logger.add_file_appender = false
|
config.rails_semantic_logger.add_file_appender = false
|
||||||
|
|
||||||
require Rails.root.join('lib', 'formatters', 'ansi_formatter')
|
require Rails.root.join('lib', 'formatters', 'ansi_formatter')
|
||||||
require Rails.root.join('lib', 'formatters', 'ansi_filter')
|
formatter = AnsiFormatter.new
|
||||||
config.semantic_logger.add_appender(io: $stdout,
|
config.semantic_logger.add_appender(io: $stdout,
|
||||||
formatter: AnsiFormatter.new,
|
formatter:,
|
||||||
filter: ->(log) { !AnsiFilter.reject(log) })
|
filter: ->(log) { !formatter.reject(log) })
|
||||||
|
|
||||||
# require Rails.root.join('lib', 'formatters', 'basic_formatter')
|
# require Rails.root.join('lib', 'old', 'basic_formatter')
|
||||||
# config.semantic_logger.add_appender(io: $stdout,
|
# config.semantic_logger.add_appender(io: $stdout,
|
||||||
# formatter: BasicFormatter.new,
|
# formatter: BasicFormatter.new,
|
||||||
# filter: BasicFormatter::EXCLUDE_LAMBDA)
|
# filter: BasicFormatter::EXCLUDE_LAMBDA)
|
||||||
|
|||||||
@@ -1,53 +0,0 @@
|
|||||||
require_relative 'ansi_dimensions'
|
|
||||||
require_relative 'ansi_colors'
|
|
||||||
|
|
||||||
# filter log message
|
|
||||||
module AnsiFilter
|
|
||||||
$memory = nil
|
|
||||||
|
|
||||||
CHAR_FATAL = '⯶'.freeze
|
|
||||||
TERMINUS_STRING = '╙─╜'.freeze
|
|
||||||
|
|
||||||
def self.reject(log)
|
|
||||||
# log.name == 'ScoresController' || false
|
|
||||||
false
|
|
||||||
end
|
|
||||||
|
|
||||||
def self.alter(log)
|
|
||||||
if log.name == 'Rails'
|
|
||||||
if log.message
|
|
||||||
log.message.chomp!('')
|
|
||||||
if log.message.starts_with?('Started')
|
|
||||||
rails = '╓─╖'
|
|
||||||
before = 1
|
|
||||||
if $memory
|
|
||||||
rails = "╓#{$memory}╖"
|
|
||||||
before = 0
|
|
||||||
end
|
|
||||||
log.dimensions = AnsiDimensions.new(rails:, before:)
|
|
||||||
$memory = nil
|
|
||||||
elsif log.message.starts_with?('Completed 2')
|
|
||||||
log.dimensions = AnsiDimensions.new(rails: TERMINUS_STRING, after: 1)
|
|
||||||
elsif log.message.starts_with?('Completed 3')
|
|
||||||
$memory = '║'
|
|
||||||
log.dimensions = AnsiDimensions.new(rails: "╙#{$memory}╜")
|
|
||||||
elsif log.message.starts_with?('Completed 4')
|
|
||||||
log.dimensions = AnsiDimensions.new(rails: '╙╨╜')
|
|
||||||
elsif log.message.starts_with?('Completed 5')
|
|
||||||
log.dimensions = AnsiDimensions.new(rails: "╙#{draw_fatal}╜")
|
|
||||||
end
|
|
||||||
elsif log.exception
|
|
||||||
log.dimensions = AnsiDimensions.new(
|
|
||||||
rails: "╓#{draw_fatal(log.level.to_s.chr.upcase)}╖",
|
|
||||||
after: 1,
|
|
||||||
terminus: true
|
|
||||||
)
|
|
||||||
end
|
|
||||||
end
|
|
||||||
log
|
|
||||||
end
|
|
||||||
|
|
||||||
private_class_method def self.draw_fatal(char = CHAR_FATAL)
|
|
||||||
AnsiColors::BG_MAGENTA + AnsiColors::BOLD + AnsiColors::TEXT_WHITE + char + AnsiColors::CLEAR
|
|
||||||
end
|
|
||||||
end
|
|
||||||
@@ -1,5 +1,6 @@
|
|||||||
require_relative 'ansi_wrapper'
|
require_relative 'ansi_wrapper'
|
||||||
require_relative 'ansi_colors'
|
require_relative 'ansi_colors'
|
||||||
|
require_relative 'ansi_dimensions'
|
||||||
|
|
||||||
require 'io/console'
|
require 'io/console'
|
||||||
require 'amazing_print'
|
require 'amazing_print'
|
||||||
@@ -9,9 +10,13 @@ require 'json'
|
|||||||
class AnsiFormatter < SemanticLogger::Formatters::Color
|
class AnsiFormatter < SemanticLogger::Formatters::Color
|
||||||
include AnsiColors
|
include AnsiColors
|
||||||
|
|
||||||
|
$memory = nil
|
||||||
|
|
||||||
CENTER_SIZE = 20
|
CENTER_SIZE = 20
|
||||||
FOREMAN_PREFIX_LENGTH = 18
|
FOREMAN_PREFIX_LENGTH = 18
|
||||||
FAILOVER_WRAP = 80
|
FAILOVER_WRAP = 80
|
||||||
|
CHAR_FATAL = '⯶'.freeze
|
||||||
|
TERMINUS_STRING = '╙─╜'.freeze
|
||||||
|
|
||||||
def initialize
|
def initialize
|
||||||
super(color_map:
|
super(color_map:
|
||||||
@@ -25,7 +30,7 @@ class AnsiFormatter < SemanticLogger::Formatters::Color
|
|||||||
end
|
end
|
||||||
|
|
||||||
def call(log, logger)
|
def call(log, logger)
|
||||||
log = AnsiFilter.alter(log)
|
log = alter(log)
|
||||||
|
|
||||||
self.log = log
|
self.log = log
|
||||||
self.logger = logger
|
self.logger = logger
|
||||||
@@ -34,11 +39,54 @@ class AnsiFormatter < SemanticLogger::Formatters::Color
|
|||||||
wrap_level(compute_useful_length, message, payload, exception)
|
wrap_level(compute_useful_length, message, payload, exception)
|
||||||
end
|
end
|
||||||
|
|
||||||
|
def reject(log)
|
||||||
|
log.name == 'ScoresController' || false
|
||||||
|
false
|
||||||
|
end
|
||||||
|
|
||||||
private
|
private
|
||||||
|
|
||||||
|
def alter(log)
|
||||||
|
if log.name == 'Rails'
|
||||||
|
if log.message
|
||||||
|
log.message.chomp!('')
|
||||||
|
if log.message.starts_with?('Started')
|
||||||
|
rails = '╓─╖'
|
||||||
|
before = 1
|
||||||
|
if $memory
|
||||||
|
rails = "╓#{$memory}╖"
|
||||||
|
before = 0
|
||||||
|
end
|
||||||
|
log.dimensions = AnsiDimensions.new(rails:, before:)
|
||||||
|
$memory = nil
|
||||||
|
elsif log.message.starts_with?('Completed 2')
|
||||||
|
log.dimensions = AnsiDimensions.new(rails: TERMINUS_STRING, after: 1)
|
||||||
|
elsif log.message.starts_with?('Completed 3')
|
||||||
|
$memory = '║'
|
||||||
|
log.dimensions = AnsiDimensions.new(rails: "╙#{$memory}╜")
|
||||||
|
elsif log.message.starts_with?('Completed 4')
|
||||||
|
log.dimensions = AnsiDimensions.new(rails: '╙╨╜')
|
||||||
|
elsif log.message.starts_with?('Completed 5')
|
||||||
|
log.dimensions = AnsiDimensions.new(rails: "╙#{draw_fatal}╜")
|
||||||
|
end
|
||||||
|
elsif log.exception
|
||||||
|
log.dimensions = AnsiDimensions.new(
|
||||||
|
rails: "╓#{draw_fatal(log.level.to_s.chr.upcase)}╖",
|
||||||
|
after: 1,
|
||||||
|
terminus: true
|
||||||
|
)
|
||||||
|
end
|
||||||
|
end
|
||||||
|
log
|
||||||
|
end
|
||||||
|
|
||||||
|
def draw_fatal(char = CHAR_FATAL)
|
||||||
|
AnsiColors::BG_MAGENTA + AnsiColors::BOLD + AnsiColors::TEXT_WHITE + char + AnsiColors::CLEAR
|
||||||
|
end
|
||||||
|
|
||||||
def origin = colorize(centerize(log.name), TEXT_CYAN)
|
def origin = colorize(centerize(log.name), TEXT_CYAN)
|
||||||
def build_prefix(char) = "#{origin} ╣#{colorize(char)}╠ "
|
def build_prefix(char) = "#{origin} ╣#{colorize(char)}╠ "
|
||||||
def build_terminus = "#{origin} #{AnsiFilter::TERMINUS_STRING} "
|
def build_terminus = "#{origin} #{TERMINUS_STRING} "
|
||||||
def centerize(text) = text.truncate(CENTER_SIZE).center(CENTER_SIZE)
|
def centerize(text) = text.truncate(CENTER_SIZE).center(CENTER_SIZE)
|
||||||
def colorize(text, tint = color) = "#{tint}#{text}#{CLEAR}"
|
def colorize(text, tint = color) = "#{tint}#{text}#{CLEAR}"
|
||||||
def stackisize(items) = items.length.positive? ? "\n#{items.join("\n")}" : ''
|
def stackisize(items) = items.length.positive? ? "\n#{items.join("\n")}" : ''
|
||||||
|
|||||||
Reference in New Issue
Block a user