跳到正文
灵动桌面框架
Esc
本栏目菜单

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 后,目录与文件名随之变化。