使用 Rime 的过程中,如果你想按照自己的需求开发一款 lua 插件,调试过程中难以避免地需要查看一下相关逻辑的输出。
Rime 自身有一套日志记录系统,也划分了等级,它适合在软件本身出现故障的时候做为参考,但不适合开发过程中的调试操作。为什么呢?因为它的修改 lua 文件后重启服务或重新部署时会生成新的日志文件,并把内容输出在新的日志文件中…… 这就导致你不能方便地实时监控输出!
有没有更好的方式呢?当然,本文给大家介绍一款比较不错的 lua 日志插件,往下看~
快速使用
下载 rime-jk/lua/logger.lua 文件放在 根目录/lua
中(如 Rime/lua
),然后在你需要调试的 lua 插件中引用它,如:
1
2
|
-- 按实际路径引入
local logger = require("logger")
|
重启服务后,会在 lua
文件夹下生成 log.txt
文件,在终端运行 tail -f log.txt
命令就可以实时监控日志输出了。
-----------------------------------------------------------------
_ ___ ____ ____ _____ ____
| | / _ \ / ___| / ___| | ____| | _ \
| | | | | | | | _ | | _ | _| | |_) |
| |___ | |_| | | |_| | | |_| | | |___ | _ <
|_____| \___/ \____| \____| |_____| |_| \_\ initial@rime-jk
-----------------------------------------------------------------
脚本
关于日志相关内容,在另一篇「 [[开发日志浅谈]] 」中做了简要介绍,此处不再赘述~
其中日志输出路径及初始化标语可以配置(使用 -- *--
表示),如下:
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
|
--
-- logger.lua
--
-- Copyright (c) 2016 rxi
--
-- This library is free software; you can redistribute it and/or modify it
-- under the terms of the MIT license. See LICENSE for details.
--
-- modified by Jack Liu <https://aituyaa.com>
--
local logger = { _version = "0.1.0" }
logger.usecolor = true
logger.outfile = "../lua/log.txt" -- *-- 日志输出路径
logger.level = "trace"
-- 日志分级
local modes = {
{ name = "trace", color = "\27[34m", },
{ name = "debug", color = "\27[36m", },
{ name = "info", color = "\27[32m", },
{ name = "warn", color = "\27[33m", },
{ name = "error", color = "\27[31m", },
{ name = "fatal", color = "\27[35m", },
}
-- ……
-- *-- 启用标语(可按需修改)
local slogan = [[
-----------------------------------------------------------------
_ ___ ____ ____ _____ ____
| | / _ \ / ___| / ___| | ____| | _ \
| | | | | | | | _ | | _ | _| | |_) |
| |___ | |_| | | |_| | | |_| | | |___ | _ <
|_____| \___/ \____| \____| |_____| |_| \_\ initial@rime-jk
-----------------------------------------------------------------
]]
logger.info(slogan)
return logger
|
🪧 标语生成使用了 在线生成ASCII艺术字 工具。
结语
一个好的日志输出系统对于流畅的开发是不可或缺的~ 试过就知道了卅 👻~