- 调整 LogLevel 的 FromStr 错误类型为 String,适配 clap 的 value_parser - log 子命令直接绑定 LogLevel 枚举,消除硬编码校验与类型转换 - 规范化日志级别更新与配置读取逻辑 - handler 类型有 Function 改为 String
24 lines
922 B
Lua
24 lines
922 B
Lua
-- commands/log/init.lua
|
|
local argparse = require("argparse")
|
|
local utils = require("log.utils") -- 支持相对目录级 require
|
|
|
|
return function(raw_args)
|
|
local parser = argparse("mr log", "Manage and view mirror logs.")
|
|
parser:option("-l --level", "Set log level"):choices({"trace", "debug", "info", "warn", "error"})
|
|
parser:option("-t --tail", "Show last N lines"):convert(tonumber)
|
|
|
|
local ok, args = pcall(function() return parser:parse(raw_args) end)
|
|
if not ok then
|
|
error("__ARGPARSE_HELP__")
|
|
end
|
|
|
|
if args.level then
|
|
print(utils.format_level(args.level))
|
|
mr.fs.write(__MIRROR_DIR__ .. "/mirror-log.ini", "level = \"" .. args.level .. "\"\n")
|
|
print("✔ Updated log level.")
|
|
elseif args.tail then
|
|
print(string.format("Tailing last %d lines...", args.tail))
|
|
else
|
|
print("Log module ready. Run 'mr log --help' for details.")
|
|
end
|
|
end |