mirror of
https://github.com/Nanaloveyuki/BitLogger.git
synced 2026-07-27 02:12:18 +00:00
52 lines
1.2 KiB
Markdown
52 lines
1.2 KiB
Markdown
# 文件输出与轮转
|
|
|
|
文件输出面向需要本地持久化的 native 应用。跨端代码应先判断能力,并保留控制台回退方案。
|
|
|
|
## 检查能力
|
|
|
|
```moonbit
|
|
if !@log.native_files_supported() {
|
|
println("file logging is unavailable on this target")
|
|
return
|
|
}
|
|
```
|
|
|
|
## 构建可轮转文件 Logger
|
|
|
|
```moonbit
|
|
let config = @log.with_file_rotation(
|
|
@log.file(
|
|
"service.log",
|
|
min_level=@log.Level::Info,
|
|
target="service.file",
|
|
auto_flush=true,
|
|
) catch {
|
|
err => {
|
|
ignore(err)
|
|
return
|
|
}
|
|
},
|
|
1024 * 1024,
|
|
max_backups=3,
|
|
)
|
|
|
|
let logger = @log.build_logger(config)
|
|
logger.info("file logger ready")
|
|
ignore(logger.flush())
|
|
ignore(logger.file_close())
|
|
```
|
|
|
|
轮转阈值是活动文件的字节数,`max_backups=3` 保留备份链。应用有序退出时必须关闭文件 Logger。
|
|
|
|
## 运行仓库示例
|
|
|
|
```bash
|
|
moon run examples/file_rotation --target native
|
|
```
|
|
|
|
## 下一步
|
|
|
|
- 写入突发较多时,加入[队列](../extend/queue.md)。
|
|
- 与 web 目标共享代码前,阅读[目标平台边界](../extend/targets.md)。
|
|
- 阅读[文件输出 API](../api/file-output.md);完整契约仍可查询[英文 API 索引](../../api/index.md)。
|