summaryrefslogtreecommitdiff
path: root/lua/core/log.lua
diff options
context:
space:
mode:
authorkylo252 <[email protected]>2021-08-09 19:02:37 +0200
committerGitHub <[email protected]>2021-08-09 19:02:37 +0200
commit405423108fc31981c40116a827e845a1179c9053 (patch)
tree41a7cb23536c982ccdc3402ab9d4602f2538eb40 /lua/core/log.lua
parent625df947dcacf3804f4ec7335478535ecd8219af (diff)
feat: Add an async logger using plenary (#1207)
Co-authored-by: rebuilt <[email protected]>
Diffstat (limited to 'lua/core/log.lua')
-rw-r--r--lua/core/log.lua29
1 files changed, 29 insertions, 0 deletions
diff --git a/lua/core/log.lua b/lua/core/log.lua
new file mode 100644
index 00000000..5dd5622e
--- /dev/null
+++ b/lua/core/log.lua
@@ -0,0 +1,29 @@
+local Log = {}
+
+--- Creates a log handle based on Plenary.log
+---@param opts these are passed verbatim to Plenary.log
+---@return log handle
+function Log:new(opts)
+ local status_ok, _ = pcall(require, "plenary.log")
+ if not status_ok then
+ return nil
+ end
+
+ local obj = require("plenary.log").new(opts)
+ local path = string.format("%s/%s.log", vim.api.nvim_call_function("stdpath", { "cache" }), opts.plugin)
+
+ obj.get_path = function()
+ return path
+ end
+
+ return obj
+end
+
+--- Creates or retrieves a log handle for the default logfile
+--- based on Plenary.log
+---@return log handle
+function Log:get_default()
+ return Log:new { plugin = "lunarvim", level = lvim.log.level }
+end
+
+return Log