Log 日志插件
Log 插件提供结构化日志,输出到控制台和日志文件。
Rust 端使用
use log::{info, warn, error, debug};
info!("应用启动成功");
warn!("配置项 {} 未找到,使用默认值", key);
error!("数据库错误: {}", e);
debug!("查询结果: {:?}", result);
框架自身就是这样用的,例如 lib.rs 启动时的 log::info!("数据库初始化完成: {}", db_path_str)。
前端使用
import { info, warn, error, debug } from '@tauri-apps/plugin-log'
await info('页面加载完成')
await warn('网络请求超时')
await error('数据解析失败')
await debug('当前状态: ' + JSON.stringify(state))
前端写入的日志与 Rust 日志进入同一日志流(同一个日志文件),调用所需的 log:default 权限已在 capabilities/default.json 中授予。模板前端目前没有调用这些 API,需要时直接 import 即可。
配置
框架在 lib.rs 中只设置了日志级别,输出目标沿用插件默认值:
// src-tauri/src/lib.rs
.plugin(
tauri_plugin_log::Builder::default()
// 开发环境日志更详细,生产环境只记录 Warn 及以上
.level(if cfg!(debug_assertions) {
log::LevelFilter::Info
} else {
log::LevelFilter::Warn
})
.build(),
)
插件默认的输出目标是两个:
TargetKind::Stdout:控制台(pnpm tauri:dev的终端里可见)TargetKind::LogDir { file_name: None }:日志文件
默认单个日志文件上限约 40 KB,超出后轮转且只保留一份(RotationStrategy::KeepOne)。如需更大文件、保留历史或额外输出到浏览器控制台,可在 Builder 上追加 .max_file_size(...)、.rotation_strategy(...)、.target(...)。
日志级别
| 级别 | 用途 |
|---|---|
error | 错误,需要立即关注 |
warn | 警告,可能的问题 |
info | 常规信息,关键操作记录 |
debug | 调试信息,开发时使用 |
trace | 最详细的跟踪信息 |
当前配置下的实际效果:
| 环境 | 记录的级别 |
|---|---|
开发(debug_assertions) | error / warn / info |
| 生产(release 构建) | error / warn |
debug / trace 在两种环境都会被过滤掉;生产环境连 info 也不记录,排查线上问题需要的信息请用 warn 及以上,或调整上面的 .level(...)。
日志文件位置
日志写入 Tauri 的应用日志目录(app_log_dir),文件名默认取应用名 productName,即 Agile Tauri.log:
| 平台 | 目录 |
|---|---|
| Windows | %LOCALAPPDATA%\com.agilefr.tauri\logs\ |
| macOS | ~/Library/Logs/com.agilefr.tauri/ |
| Linux | ~/.local/share/com.agilefr.tauri/logs/ |
用 pnpm tauri:dev 启动的开发版会合并 tauri.conf.dev.json,identifier 是 com.agilefr.tauri.dev、productName 是 Agile Tauri (Dev),日志落在对应的 .dev 目录下,与正式版互不干扰。衍生项目修改 identifier / productName 后,目录与文件名随之变化。