Logging(ログ記録)
Plugin 説明内容の英語表記部分について Plugin の各章は、原文データからページ内容の一部が自動生成されているため、英語表記のままの部分があります。
Tauri アプリ用の設定可能なログ記録。
This plugin requires a Rust version of at least 1.77.2
| Platform | Level | Notes |
|---|---|---|
| windows | ||
| linux | ||
| macos | ||
| android | ||
| ios |
はじめに、「log」プラグインをインストールしてください。
自分のプロジェクトのパッケージ・マネージャーを使用して依存関係を追加します:
npm run tauri add logyarn run tauri add logpnpm tauri add logdeno task tauri add logbun tauri add logcargo tauri add log-
src-tauriフォルダで次のコマンドを実行して、このプラグインをCargo.toml内のプロジェクトの依存関係に追加します:cargo add tauri-plugin-log -
追加したプラグインを初期化するために
lib.rsを修正します:src-tauri/src/lib.rs #[cfg_attr(mobile, tauri::mobile_entry_point)]pub fn run() {tauri::Builder::default().plugin(tauri_plugin_log::Builder::new().build()).run(tauri::generate_context!()).expect("error while running tauri application");} -
お好みの JavaScript パッケージ・マネージャーを使用して、「JavaScript Guest」バインディングをインストールします:
npm install @tauri-apps/plugin-logyarn add @tauri-apps/plugin-logpnpm add @tauri-apps/plugin-logdeno add npm:@tauri-apps/plugin-logbun add @tauri-apps/plugin-log
-
まず、プラグインを Tauri に登録する必要があります。
src-tauri/src/lib.rs use tauri_plugin_log::{Target, TargetKind};#[cfg_attr(mobile, tauri::mobile_entry_point)]pub fn run() {tauri::Builder::default().plugin(tauri_plugin_log::Builder::new().build()).run(tauri::generate_context!()).expect("error while running tauri application");} -
すると、プラグインのすべての API は JavaScript ゲスト・バインディングを通じて利用できるようになります:
import {warn,debug,trace,info,error,attachConsole,attachLogger,} from '@tauri-apps/plugin-log';// `"withGlobalTauri": true` を使用する場合は、// const { warn, debug, trace, info, error, attachConsole, attachLogger } = window.__TAURI__.log; を使用できます
プラグインの warn、debug、trace、info、error API のいずれかを使用して、JavaScript コードから「ログ記録」を生成します。
import { warn, debug, trace, info, error } from '@tauri-apps/plugin-log';
trace('Trace');info('Info');error('Error');すべての console メッセージを「log」プラグインに自動転送するには、次のように書き換えます:
import { warn, debug, trace, info, error } from '@tauri-apps/plugin-log';
function forwardConsole( fnName: 'log' | 'debug' | 'info' | 'warn' | 'error', logger: (message: string) => Promise<void>) { const original = console[fnName]; console[fnName] = (message) => { original(message); logger(message); };}
forwardConsole('log', trace);forwardConsole('debug', debug);forwardConsole('info', info);forwardConsole('warn', warn);forwardConsole('error', error);Rust 側で自分のログを作成するには、log crate を使用します:
log::error!("something bad happened!");log::info!("Tauri is awesome!");log crate を Cargo.toml ファイルに追加する必要があることに注意してください。
[dependencies]log = "0.4"「log」プラグイン・ビルダーには、すべてのアプリケーション・ログの共通の送り先を設定できる targets 関数があります。
すべてのログをターミナルに転送するには、Stdout または Stderr をターゲットとして有効化します。
tauri_plugin_log::Builder::new() .target(tauri_plugin_log::Target::new( tauri_plugin_log::TargetKind::Stdout, )) .build()このターゲットはデフォルトで有効化されています。
Webview コンソールにすべての Rust ログを表示するには、Webview ターゲットを有効にし、フロントエンドで attachConsole を実行します:
tauri_plugin_log::Builder::new() .target(tauri_plugin_log::Target::new( tauri_plugin_log::TargetKind::Webview, )) .build()import { attachConsole } from '@tauri-apps/plugin-log';const detach = await attachConsole();// コンソールへのログ出力が不要になった場合には、detach() を呼び出してください。すべてのログをファイルに書き込むには、LogDir または Folder ターゲットのいずれかを使用します。
永続ログ persisting log: (通常 persistent log) システムやアプリケーションが終了・再起動してもログ・データの履歴を保持する仕組み。
LogDir:
tauri_plugin_log::Builder::new() .target(tauri_plugin_log::Target::new( tauri_plugin_log::TargetKind::LogDir { file_name: Some("logs".to_string()), }, )) .build()LogDir ターゲットを使用すると、すべてのログは推奨されるログ・ディレクトリに保存されます。
次の表は、プラットフォームごとのログの場所を示しています:
| Platform | Value | 設定例 |
|---|---|---|
| Linux | $XDG_DATA_HOME/{bundleIdentifier}/logs or $HOME/.local/share/{bundleIdentifier}/logs | /home/alice/.local/share/com.tauri.dev/logs |
| macOS | {homeDir}/Library/Logs/{bundleIdentifier} | /Users/Alice/Library/Logs/com.tauri.dev |
| Windows | {FOLDERID_LocalAppData}/{bundleIdentifier}/logs | C:\Users\Alice\AppData\Local\com.tauri.dev\logs |
Folder:
Folder ターゲットを使用すると、ファイル・システム内のカスタムな場所にログを書き込むことができます。
tauri_plugin_log::Builder::new() .target(tauri_plugin_log::Target::new( tauri_plugin_log::TargetKind::Folder { path: std::path::PathBuf::from("/path/to/logs"), file_name: None, }, )) .build()デフォルトの file_name は「アプリケーション名」です。
デフォルトでは、ログ・ファイルは最大サイズに到達すると破棄されます。
最大ファイル・サイズは、ビルダーの max_file_size 関数を使用して設定できます:
tauri_plugin_log::Builder::new() .max_file_size(50_000 /* bytes */) .build()Tauri は、ログ・ファイルがサイズ上限に達したときに、以前のファイルを破棄するのではなく、自動的にログ・ファイルを入れ替えます。
この動作は rotation_strategy(入れ替え方式)を使用して設定できます:
tauri_plugin_log::Builder::new() .rotation_strategy(tauri_plugin_log::RotationStrategy::KeepAll) .build()デフォルトではすべてのログが処理されます。ログの量を減らし、関連する情報のみをフィルタリングする方法がいくつかあります。
最大ログ・レベルを設定するには、level 関数を使用します:
tauri_plugin_log::Builder::new() .level(log::LevelFilter::Info) .build()上記の設定例では、「デバッグ・ログ」と「トレース・ログ」は info(情報) よりもレベルが低いため破棄されます。
個々のモジュールごとにそれぞれ最大レベルを定義することもできます:
tauri_plugin_log::Builder::new() .level(log::LevelFilter::Info) // コマンド・モジュールのみ詳細ログ .level_for("my_crate_name::commands", log::LevelFilter::Trace) .build()これらの API は log crate を使用するため、Cargo.toml ファイルに追加する必要があることに注意してください:
[dependencies]log = "0.4"メタデータをチェックして不要なログを破棄するように filter 関数を定義できます:
tauri_plugin_log::Builder::new() // ターゲット "hyper" のログを除外します .filter(|metadata| metadata.target() != "hyper") .build()「log」プラグインは、各ログ・レコードを DATE[TARGET][LEVEL] MESSAGE のようなフォーマットに書式設定します。
カスタム・フォーマットの機能は format で提供されます。
tauri_plugin_log::Builder::new() .format(|out, message, record| { out.finish(format_args!( "[{} {}] {}", record.level(), record.target(), message )) }) .build()デフォルトでは、「log」プラグインは UTC タイムゾーンを使用して日付を指定します。
ただし、timezone_strategy を使用してローカル・タイムゾーンを使用するように設定できます。
UTC: 協定世界時(coordinated universal time)。所謂「国際標準時」。日本標準時は、「UTC+9 時間」となります。《wikipedia》
tauri_plugin_log::Builder::new() .timezone_strategy(tauri_plugin_log::TimezoneStrategy::UseLocal) .build()デフォルトでは、潜在的に危険なプラグイン・コマンドとそのスコープ(有効範囲)はすべてブロックされており、アクセスできません。これらを有効にするには、capabilities 設定でアクセス権限を変更する必要があります。
詳細については「セキュリティ・レベル Capabilities」の章を参照してください。また、プラグインのアクセス権限を設定するには「プライグン・アクセス権の使用」の章のステップ・バイ・ステップ・ガイドを参照してください。
{ "$schema": "../gen/schemas/desktop-schema.json", "identifier": "main-capability", "description": "Capability for the main window", "windows": ["main"], "permissions": ["log:default"]}Default Permission
Allows the log command
This default permission set includes the following:
allow-log
Permission Table
| Identifier | Description |
|---|---|
|
|
Enables the log command without any pre-configured scope. |
|
|
Denies the log command without any pre-configured scope. |
【※ この日本語版は、「Jul 3, 2025 英語版」に基づいています】
© 2025 Tauri Contributors. CC-BY / MIT