1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61
|
# frozen_string_literal: true
# Released under the MIT License.
# Copyright, 2024-2025, by Samuel Williams.
require "fiber/local"
require_relative "config"
module Console
# The public logger interface.
module Interface
extend Fiber::Local
# Create a new (thread local) logger instance.
def self.local
Config::DEFAULT.make_logger
end
# Get the current logger instance.
def logger
Interface.instance
end
# Set the current logger instance.
#
# The current logger instance is assigned per-fiber.
def logger= instance
Interface.instance= instance
end
# Emit a debug log message.
def debug(...)
Interface.instance.debug(...)
end
# Emit an informational log message.
def info(...)
Interface.instance.info(...)
end
# Emit a warning log message.
def warn(...)
Interface.instance.warn(...)
end
# Emit an error log message.
def error(...)
Interface.instance.error(...)
end
# Emit a fatal log message.
def fatal(...)
Interface.instance.fatal(...)
end
# Emit a log message with arbitrary arguments and options.
def call(...)
Interface.instance.call(...)
end
end
end
|