2025-08-13    2025-08-13    767 字  2 分钟

使用 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艺术字 工具。

结语

一个好的日志输出系统对于流畅的开发是不可或缺的~ 试过就知道了卅 👻~