app.log - 日志 API
日志记录 API。每个插件都有独立的日志文件。
方法
app.log.verbose(message)
记录详细日志(仅写入插件日志)。
app.log.verbose("详细调试信息")
app.log.debug(message)
记录调试日志(仅写入插件日志)。
app.log.debug("调试信息")
app.log.info(message)
记录信息日志(仅写入插件日志)。
app.log.info("处理开始")
app.log.warning(message)
记录警告日志(写入插件日志 + 系统日志)。
app.log.warning("文件不存在,使用默认值")
app.log.warn(message)
warning 的别名。
app.log.warn("警告信息")
app.log.error(message)
记录错误日志(写入插件日志 + 系统日志)。
app.log.error("处理失败: " .. err)
app.log.getPath()
获取插件日志文件路径。
返回值: string - 日志文件路径
local path = app.log.getPath()
-- "~/Library/Group Containers/.../Logs/Plugins/com.example.plugin.log"
app.log.read(lines?)
读取日志文件的最后 N 行。
参数:
lines(number, 可选) - 要读取的行数(默认 100)
返回值: string - 日志内容
local content = app.log.read(50)
app.log.clear()
清空插件日志文件。
app.log.clear()
日志级别
| 级别 | 插件日志 | 系统日志 |
|---|---|---|
| verbose | ✅ | ❌ |
| debug | ✅ | ❌ |
| info | ✅ | ❌ |
| warning | ✅ | ✅ |
| error | ✅ | ✅ |
日志位置
- 插件日志:
~/Library/Group Containers/group.net.ymlab.iRightMenu.pro/Logs/Plugins/{plugin_id}.log - 系统日志:
~/Library/Group Containers/group.net.ymlab.iRightMenu.pro/Logs/iRightMenu.log
示例
记录操作过程
function MyPlugin:handleConvert(context)
app.log.info("开始转换,共 " .. #context.selectedFiles .. " 个文件")
for i, file in ipairs(context.selectedFiles) do
app.log.debug("处理文件: " .. file)
local ok, err = self:convertFile(file)
if ok then
app.log.info("转换成功: " .. app.path.basename(file))
else
app.log.error("转换失败: " .. file .. " - " .. err)
end
end
app.log.info("转换完成")
end