Files
news.gitea.happylizard.me/bin/gems/console-1.29.3/lib/console/logger.rb
T
pizza2d1 4cee170d66
Gitea Actions Demo / Explore-Gitea-Actions (push) Failing after 9s
Add bin and edit workflow
2026-09-16 13:11:16 -06:00

80 lines
1.9 KiB
Ruby

# frozen_string_literal: true
# Released under the MIT License.
# Copyright, 2019-2024, by Samuel Williams.
# Copyright, 2021, by Bryan Powell.
# Copyright, 2021, by Robert Schulze.
require_relative "output"
require_relative "output/failure"
require_relative "filter"
require_relative "event"
require_relative "resolver"
require_relative "progress"
require "fiber/local"
module Console
class Logger < Filter[debug: 0, info: 1, warn: 2, error: 3, fatal: 4]
extend Fiber::Local
# Set the default log level based on `$DEBUG` and `$VERBOSE`.
# You can also specify CONSOLE_LEVEL=debug or CONSOLE_LEVEL=info in environment.
# https://mislav.net/2011/06/ruby-verbose-mode/ has more details about how it all fits together.
def self.default_log_level(env = ENV)
if level = env["CONSOLE_LEVEL"]
LEVELS[level.to_sym] || level.to_i
elsif $DEBUG
DEBUG
elsif $VERBOSE.nil?
WARN
else
INFO
end
end
# Controls verbose output using `$VERBOSE`.
def self.verbose?(env = ENV)
!$VERBOSE.nil? || env["CONSOLE_VERBOSE"]
end
def self.default_logger(output = $stderr, env = ENV, **options)
if options[:verbose].nil?
options[:verbose] = self.verbose?(env)
end
if options[:level].nil?
options[:level] = self.default_log_level(env)
end
output = Output.new(output, env, **options)
logger = self.new(output, **options)
Resolver.default_resolver(logger)
return logger
end
def self.local
self.default_logger
end
DEFAULT_LEVEL = 1
def initialize(output, **options)
# This is the expected default behaviour, but it may be nice to have a way to override it.
output = Output::Failure.new(output, **options)
super(output, **options)
end
def progress(subject, total, **options)
options[:severity] ||= :info
Progress.new(subject, total, **options)
end
end
end