summaryrefslogtreecommitdiff
path: root/lua/lvim/core/log.lua
diff options
context:
space:
mode:
Diffstat (limited to 'lua/lvim/core/log.lua')
-rw-r--r--lua/lvim/core/log.lua57
1 files changed, 33 insertions, 24 deletions
diff --git a/lua/lvim/core/log.lua b/lua/lvim/core/log.lua
index 502fd19b..557590e1 100644
--- a/lua/lvim/core/log.lua
+++ b/lua/lvim/core/log.lua
@@ -1,6 +1,7 @@
local Log = {}
local logfile = string.format("%s/%s.log", vim.fn.stdpath "cache", "lvim")
+local in_headless = #vim.api.nvim_list_uis() == 0
Log.levels = {
TRACE = 1,
@@ -33,7 +34,7 @@ function Log:init()
nvim_notify_params_injecter(nil, {})
local log_level = Log.levels[(lvim.log.level):upper() or "WARN"]
- structlog.configure {
+ local lvim_log = {
lvim = {
sinks = {
structlog.sinks.Console(log_level, {
@@ -49,25 +50,6 @@ function Log:init()
{ level = structlog.formatters.FormatColorizer.color_level() }
),
}),
- structlog.sinks.NvimNotify(Log.levels.INFO, {
- processors = {
- nvim_notify_default_namer,
- nvim_notify_params_injecter,
- },
- formatter = structlog.formatters.Format( --
- "%s",
- { "msg" },
- { blacklist_all = true }
- ),
- params_map = {
- icon = "icon",
- keep = "keep",
- on_open = "on_open",
- on_close = "on_close",
- timeout = "timeout",
- title = "title",
- },
- }),
structlog.sinks.File(Log.levels.TRACE, logfile, {
processors = {
structlog.processors.Namer(),
@@ -83,12 +65,39 @@ function Log:init()
},
}
+ if not in_headless and lvim.builtin.notify.active then
+ table.insert(
+ lvim_log.lvim.sinks,
+ structlog.sinks.NvimNotify(Log.levels.INFO, {
+ processors = {
+ nvim_notify_default_namer,
+ nvim_notify_params_injecter,
+ },
+ formatter = structlog.formatters.Format( --
+ "%s",
+ { "msg" },
+ { blacklist_all = true }
+ ),
+ params_map = {
+ icon = "icon",
+ keep = "keep",
+ on_open = "on_open",
+ on_close = "on_close",
+ timeout = "timeout",
+ title = "title",
+ },
+ })
+ )
+ end
+
+ structlog.configure(lvim_log)
+
local logger = structlog.get_logger "lvim"
- if lvim.log.override_notify then
+ if not in_headless and lvim.builtin.notify.active and lvim.log.override_notify then
-- Overwrite vim.notify to use the logger
vim.notify = function(msg, vim_log_level, opts)
- nvim_notify_params = opts or {}
+ nvim_notify_params = vim.tbl_deep_extend("force", lvim.builtin.notify.opts, opts)
-- vim_log_level can be omitted
if vim_log_level == nil then
vim_log_level = Log.levels["INFO"]
@@ -109,7 +118,7 @@ end
---@param level string [same as vim.log.log_levels]
function Log:add_entry(level, msg, event)
if self.__handle then
- self.__handle:log(level, msg, event)
+ self.__handle:log(level, vim.inspect(msg), event)
return
end
@@ -119,7 +128,7 @@ function Log:add_entry(level, msg, event)
end
self.__handle = logger
- self.__handle:log(level, msg, event)
+ self.__handle:log(level, vim.inspect(msg), event)
end
---Retrieves the path of the logfile