Files
cave.nvim/lua/cave/log/logger.lua
2024-10-02 14:58:20 +02:00

40 lines
931 B
Lua

local Log = require "cave.log"
local Meta = require "cave.meta"
local validate = Meta.validate
local Str = Meta.String
---@class cave.Logger
---@field prefix string
local Logger = Meta.derive "Logger"
---@param prefix string
function Logger:init(prefix) self.prefix = prefix end
---@param prefix string
---@return cave.Logger
function Logger.new(prefix)
validate { prefix = { prefix, Str } }
local logger = setmetatable({}, Logger)
logger:init(prefix)
return logger
end
---@param msg string
---@param ...? any
function Logger:dbg(msg, ...) Log.dbg(self.prefix .. msg, ...) end
---@param msg string
---@param ...? any
function Logger:err(msg, ...) Log.err(self.prefix .. msg, ...) end
---@param msg string
---@param ...? any
function Logger:inf(msg, ...) Log.inf(self.prefix .. msg, ...) end
---@param msg string
---@param ...? any
function Logger:warn(msg, ...) Log.warn(self.prefix .. msg, ...) end
return Logger