summaryrefslogtreecommitdiff
path: root/lua/lvim/core/log.lua
diff options
context:
space:
mode:
authorkylo252 <[email protected]>2021-10-24 08:37:02 +0200
committerkylo252 <[email protected]>2021-10-24 08:37:02 +0200
commit1f2167df0ea3f837c9c78a0137a888ca05e5e83a (patch)
tree6fd46809d7dd4ff7fffae00b257579397de793cd /lua/lvim/core/log.lua
parent30de3736baec9a72134205de91f3388e3ea68bcf (diff)
parent3dd60bd3d4165b14844a514d519f3810b8142a02 (diff)
Merge remote-tracking branch 'origin/rolling'
Diffstat (limited to 'lua/lvim/core/log.lua')
-rw-r--r--lua/lvim/core/log.lua81
1 files changed, 42 insertions, 39 deletions
diff --git a/lua/lvim/core/log.lua b/lua/lvim/core/log.lua
index 9ddc641f..9950af28 100644
--- a/lua/lvim/core/log.lua
+++ b/lua/lvim/core/log.lua
@@ -18,22 +18,22 @@ function Log:init()
return nil
end
- local nvim_notify_params = {}
- local nvim_notify_params_injecter = function(_, entry)
- for key, value in pairs(nvim_notify_params) do
- entry[key] = value
+ local notify_handler = require "lvim.core.notify"
+
+ ---Check if notify is available
+ ---@return boolean
+ local is_notify_available = function()
+ local in_headless = #vim.api.nvim_list_uis() == 0
+ --We can't rely on lvim.builtin.notify.active since this can be used before the config loader
+ local has_notify_plugin = pcall(require, "notify")
+ if not in_headless and has_notify_plugin then
+ return true
end
- return entry
+ return false
end
- local nvim_notify_default_namer = function(logger, entry)
- entry["title"] = logger.name
- return entry
- end
-
- 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 +49,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,15 +64,37 @@ function Log:init()
},
}
+ if is_notify_available() then
+ table.insert(
+ lvim_log.lvim.sinks,
+ structlog.sinks.NvimNotify(Log.levels.INFO, {
+ processors = {
+ notify_handler.default_namer,
+ notify_handler.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
- -- Overwrite vim.notify to use the logger
- vim.notify = function(msg, vim_log_level, opts)
- nvim_notify_params = opts or {}
- -- https://github.com/neovim/neovim/blob/685cf398130c61c158401b992a1893c2405cd7d2/runtime/lua/vim/lsp/log.lua#L5
- logger:log(vim_log_level + 1, msg)
- end
+ logger:log(Log.levels.INFO, "Ignoring request to override vim.notify with structlog due to instabilities")
end
return logger
@@ -102,7 +105,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
@@ -112,7 +115,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