Refactored log setup onto separate project

This commit is contained in:
Roberto Alsina 2024-07-08 21:27:40 -03:00
parent ef8f5c357f
commit 67c37a49e1
4 changed files with 8 additions and 52 deletions

View File

@ -52,6 +52,10 @@ shards:
git: https://github.com/kemalcr/kemal-basic-auth.git
version: 1.0.0
oplog:
git: https://github.com/ralsina/oplog.git
version: 0.1.0+git.commit.70e3a7bbc2f1f4d75cf4e142244b263ee2844ba1
radix:
git: https://github.com/luislavena/radix.git
version: 0.4.1

View File

@ -34,6 +34,8 @@ dependencies:
github: kemalcr/kemal
kemal-basic-auth:
github: kemalcr/kemal-basic-auth
oplog:
github: ralsina/oplog
rucksack:
github: busyloop/rucksack

View File

@ -1,50 +0,0 @@
module Logging
extend self
class LogBackend < Log::IOBackend
@stdout = Log::IOBackend.new(io: STDOUT, formatter: LogFormat)
@stderr = Log::IOBackend.new(io: STDERR, formatter: LogFormat)
def write(entry : Log::Entry)
if entry.severity >= Log::Severity::Error
@stderr.write entry
else
@stdout.write entry
end
end
end
struct LogFormat < Log::StaticFormatter
@@colors = {
"FATAL" => :red,
"ERROR" => :red,
"WARN" => :yellow,
"NOTICE" => :yellow,
"INFO" => :green,
"DEBUG" => :blue,
"TRACE" => :light_blue,
}
def run
string "#{@entry.message}".colorize(@@colors[@entry.severity.label])
end
end
def self.setup(verbosity)
Colorize.on_tty_only!
verbosity = [0, verbosity].max
verbosity = [6, verbosity].min
severity = [
Log::Severity::Fatal,
Log::Severity::Error,
Log::Severity::Warn,
Log::Severity::Notice,
Log::Severity::Info,
Log::Severity::Debug,
Log::Severity::Trace,
][verbosity]
Log.setup(
severity,
LogBackend.new)
end
end

View File

@ -1,8 +1,8 @@
require "./config.cr"
require "./faaso.cr"
require "./log.cr"
require "colorize"
require "docopt"
require "oplog"
require "rucksack"
macro version
@ -35,7 +35,7 @@ Options:
DOC
ans = Docopt.docopt(doc, ARGV)
Logging.setup(ans["-v"].to_s.to_i)
Oplog.setup(ans["-v"].to_s.to_i)
Log.debug { ans }
status : Int32 = 0