ログメッセージ一覧
すべてのログメッセージの意味と対処法
このドキュメントでは、lightfile-shotが出力するすべてのログメッセージとその意味を説明します。
完了メッセージ
処理が完了すると、最終的な結果が表示されます。
基本形式
✅ 完了: 750ファイル (成功: 252 | スキップ: 249 | エラー: 249) | ⏳ 所要時間: 18s| 項目 | 説明 |
|---|---|
| 750ファイル | 処理対象となった総ファイル数 |
| 成功: 252 | 最適化に成功したファイル数 |
| スキップ: 249 | スキップされたファイル数 |
| エラー: 249 | 処理に失敗したファイル数 |
| 所要時間: 18s | 処理全体の所要時間 |
削減効果情報付き
✅ 完了: 750ファイル (成功: 252 | スキップ: 249 | エラー: 249) | ⏳ 所要時間: 18s | 📊 2.5 GB → 2.1 GB (削減 400 MB = 16.0%)| 項目 | 説明 |
|---|---|
| 2.5 GB → 2.1 GB | 元のサイズ → 最適化後のサイズ |
| 削減 400 MB | 削減されたデータ量 |
| 16.0% | 削減率 |
ログレベル別の出力例
debug(デバッグ)
ライセンス検証: OK
バッチ処理を開始します(ディレクトリモード)
ワークフローの作成中...
上書きモードを使用します
🛞 スキャン中: 250ファイル | ⏳ 経過: 3s
画像形式を検出しました: JPEG
JPEG処理を開始します (品質: medium)
JPEG最適化を開始します
最適化完了
ファイルを最適化しました: image.jpg
...info(情報、デフォルト)
DryRunモード: 実際の処理は行いません
🛞 スキャン中: 250ファイル | ⏳ 経過: 3s
🔧 最適化中: 250 / 750ファイル (33.3%) | 最適化: 84件 | スキップ: 83件 | 失敗: 83件 | 削減量: 2.1 MB (-14.0%) | ⏳ 経過: 3s | 残り: 約6s
ファイルを最適化しました: image.jpg
スキップ: image2.jpg (ファイルは既に最適化されています)
✅ 完了: 750ファイル (成功: 252 | スキップ: 249 | エラー: 249) | ⏳ 所要時間: 18swarn(警告)
ファイルの最適化に失敗しました: corrupted.jpg
最適化されたファイルの書き出しに失敗しました: readonly.jpgerror(エラー)
Error: ライセンストークンが見つかりません。
Error: ワークフローの作成中にエラーが発生しました
Error: バッチ処理中にエラーが発生しましたverbose(詳細ログ)
--verbose オプション使用時の出力例:
ライセンス検証: OK
バッチ処理を開始します(ディレクトリモード)
上書きモードを使用します
[batch] Scanning directory: /path/to/images
[batch] Found 250 files matching criteria
[batch] Starting optimization with concurrency: 4
🛞 スキャン中: 250ファイル | ⏳ 経過: 3s
[batch] Processing file 1/250: image1.jpg
画像形式を検出しました: JPEG
JPEG処理を開始します (品質: medium)
[batch] Optimization completed for image1.jpg
ファイルを最適化しました: image1.jpg
...起動・初期化メッセージ
ライセンス検証
| メッセージ | レベル | 意味 |
|---|---|---|
| ライセンス検証: OK | Debug | ライセンス検証に成功 |
| Error: ライセンストークンが見つかりません。--license-token オプション、環境変数 LF_TOKEN、またはファイル ~/.lightfile-next/token でライセンストークンを指定してください | Error | ライセンストークンが設定されていない |
| Error: ライセンストークンが無効です: {詳細} | Error | ライセンストークンの形式が不正 |
| Error: ライセンスの有効期限が切れています(有効期限: {日時})。新しいライセンスを取得してください | Error | ライセンスの有効期限切れ |
| Error: ライセンス検証エラー: {詳細} | Error | その他のライセンス検証エラー |
モード・設定
| メッセージ | レベル | 意味 |
|---|---|---|
| DryRunモード: 実際の処理は行いません | Info | ドライランモードが有効 |
| バッチ処理を開始します(ファイルモード) | Debug | ファイル処理モードで開始 |
| バッチ処理を開始します(ディレクトリモード) | Debug | ディレクトリ処理モードで開始 |
| 上書きモードを使用します | Debug | 上書きモードで動作 |
| 複製モードを使用します | Debug | 複製モードで動作(出力先: {パス}) |
| ジャーナル記録を有効化しました | Debug | ジャーナル機能が有効(出力先: {パス}) |
初期化エラー
| メッセージ | レベル | 意味 | 対処法 |
|---|---|---|---|
| Error: configuration validation failed: {詳細} | Error | 設定の検証に失敗 | 設定を確認 |
| Error: ワークフローの作成中にエラーが発生しました | Error | ワークフロー作成に失敗 | ディレクトリ{パス}を確認 |
| Error: ジャーナルファイルの作成中にエラーが発生しました | Error | ジャーナルファイル作成に失敗 | パスと権限を確認 |
| Error: 初期化中にエラーが発生しました | Error | プロセッサ初期化に失敗 | ワークフロー設定を確認 |
| Error: invalid min-size: {詳細} | Error | 最小ファイルサイズの形式が不正 | 単位を含めて指定(例: 10kb) |
| Error: invalid max-size: {詳細} | Error | 最大ファイルサイズの形式が不正 | 単位を含めて指定(例: 5mb) |
ファイル処理メッセージ
最適化成功
ファイルを最適化しました: {ファイルパス} ({形式}, {元サイズ} → {最適化後サイズ}, 削減 {削減量} = {削減率}%)例:
ファイルを最適化しました: /path/to/image.jpg (JPEG, 100 KB → 80 KB, 削減 20 KB = 20.0%)| レベル | Info |
|---|---|
| 意味 | ファイルの最適化に成功 |
スキップ
スキップ: {ファイルパス} ({理由})例:
スキップ: /path/to/image.jpg (ファイルは既に最適化されています)| レベル | Info |
|---|---|
| 意味 | ファイルがスキップされた |
スキップ理由:
ファイルは既に最適化されています: すでに最適化済みファイルサイズが範囲外です: サイズフィルタに合致しない拡張子が対象外です: 拡張子フィルタに合致しないパターンに合致しません: include/excludeパターンに合致しない
処理失敗
ファイルの最適化に失敗しました: {ファイルパス} (エラー: {エラー詳細})例:
ファイルの最適化に失敗しました: /path/to/corrupted.jpg (エラー: unsupported format)| レベル | Warn |
|---|---|
| 意味 | ファイルの最適化に失敗 |
| 対処法 | ファイルの形式や破損を確認 |
書き込み失敗
最適化されたファイルの書き出しに失敗しました: {ファイルパス}| レベル | Warn |
|---|---|
| 意味 | 最適化されたファイルの書き込みに失敗 |
| 対処法 | ディスク容量やパーミッションを確認 |
ドライランモード
ドライランモード: ファイルの書き込みをスキップしました| レベル | Debug |
|---|---|
| 意味 | ドライランモードのためファイルの書き込みをスキップ |
エラーメッセージ
バッチ処理エラー
Error: バッチ処理中にエラーが発生しました| レベル | Error |
|---|---|
| 意味 | バッチ処理全体でエラーが発生 |
| 対処法 | エラー詳細を確認 |
設定検証エラー
Error: 設定がnilです| レベル | Error |
|---|---|
| 意味 | 内部エラー(設定オブジェクトがnull) |
| 対処法 | バグレポート |
Error: ライセンストークンが必要です: --license-token、LF_TOKEN環境変数、または~/.lightfile-next/tokenファイルで指定してください| レベル | Error |
|---|---|
| 意味 | ライセンストークンが未設定 |
| 対処法 | ライセンストークンを設定 |
Error: ローカル設定が必要です| レベル | Error |
|---|---|
| 意味 | ローカルファイルシステム設定がない |
| 対処法 | 処理対象ディレクトリを指定 |
Error: ローカルファイルシステムにはディレクトリが必要です| レベル | Error |
|---|---|
| 意味 | ディレクトリ{パス}が指定されていない |
| 対処法 | --dir でディレクトリを指定 |
Error: 無効なminSizeフォーマット: {詳細}| レベル | Error |
|---|---|
| 意味 | 最小ファイルサイズの形式が不正 |
| 対処法 | 正しい形式を指定(例:2kb, 100b) |
Error: 無効なmaxSizeフォーマット: {詳細}| レベル | Error |
|---|---|
| 意味 | 最大ファイルサイズの形式が不正 |
| 対処法 | 正しい形式を指定(例:5mb, 1gb) |
Error: 並行数は非負でなければなりません| レベル | Error |
|---|---|
| 意味 | 並行数が負の値 |
| 対処法 | 0以上の値を指定 |
Error: 無効な品質: {値} (有効なオプション: low, medium, high)| レベル | Error |
|---|---|
| 意味 | 無効な品質値 |
| 対処法 | low/medium/high のいずれかを指定 |
Error: 無効なJPEG品質: {値} (有効なオプション: low, medium, high)| レベル | Error |
|---|---|
| 意味 | 無効なJPEG品質値 |
| 対処法 | low/medium/high のいずれかを指定 |
Error: 無効なPNG品質: {値} (有効なオプション: low, medium, high)| レベル | Error |
|---|---|
| 意味 | 無効なPNG品質値 |
| 対処法 | low/medium/high のいずれかを指定 |
Error: 無効なログレベル: {値} (有効なオプション: debug, info, warn, error)| レベル | Error |
|---|---|
| 意味 | 無効なログレベル |
| 対処法 | debug/info/warn/error のいずれかを指定 |
コマンドライン引数エラー
Error: 第1引数がファイルの場合、第2引数は既存のディレクトリではなく出力ファイルパスを指定してください| レベル | Error |
|---|---|
| 意味 | ファイル処理時に既存ディレクトリを第2引数に指定 |
| 対処法 | 出力ファイルパスを指定 |
Error: 第1引数がディレクトリの場合、第2引数は既存のファイルではなく出力ディレクトリを指定してください| レベル | Error |
|---|---|
| 意味 | ディレクトリ処理時に既存ファイルを第2引数に指定 |
| 対処法 | 出力ディレクトリ{パス}を指定 |
画像最適化内部メッセージ(--verbose時)
形式検出
画像形式を検出中| レベル | Debug |
|---|---|
| 意味 | 画像形式の検出を開始 |
画像形式を検出しました: {形式}例:
画像形式を検出しました: JPEG| レベル | Debug |
|---|---|
| 意味 | 画像形式の検出に成功 |
JPEG処理
JPEG処理を開始します (品質: {品質})例:
JPEG処理を開始します (品質: medium)| レベル | Debug |
|---|---|
| 意味 | JPEG最適化処理を開始 |
JPEG最適化を開始します| レベル | Debug |
|---|---|
| 意味 | JPEG最適化の実行を開始 |
最適化完了| レベル | Info |
|---|---|
| 意味 | 最適化処理が完了 |
PNG処理
PNG処理を開始します (品質: {品質})例:
PNG処理を開始します (品質: medium)| レベル | Debug |
|---|---|
| 意味 | PNG最適化処理を開始 |
PNG最適化を開始します| レベル | Debug |
|---|---|
| 意味 | PNG最適化の実行を開始 |
警告
不明な品質値 '{品質}' が指定されました。'medium' を使用します例:
不明な品質値 'super' が指定されました。'medium' を使用します| レベル | Debug |
|---|---|
| 意味 | 無効な品質値のためデフォルト値にフォールバック |
| 対処法 | 品質値を確認(low/medium/high) |
シグナル処理メッセージ
Received interrupt signal, shutting down...| レベル | Info |
|---|---|
| 意味 | Ctrl+Cが押され、シャットダウン処理を開始 |
ワークフロー内部メッセージ(--verbose時)
[batch] Scanning directory: {ディレクトリパス}| レベル | Debug(verbose時のみ) |
|---|---|
| 意味 | ディレクトリのスキャンを開始 |
[batch] Found {数} files matching criteria| レベル | Debug(verbose時のみ) |
|---|---|
| 意味 | 条件に合致するファイルを検出 |
[batch] Starting optimization with concurrency: {数}| レベル | Debug(verbose時のみ) |
|---|---|
| 意味 | 最適化処理を並列数{数}で開始 |
[batch] Processing file {現在}/{総数}: {ファイル名}| レベル | Debug(verbose時のみ) |
|---|---|
| 意味 | ファイルの処理を開始 |
[batch] Optimization completed for {ファイル名}| レベル | Debug(verbose時のみ) |
|---|---|
| 意味 | ファイルの最適化が完了 |
メッセージのフィルタリング
ログレベル別の出力
| ログレベル | 出力されるメッセージ |
|---|---|
| debug | すべてのメッセージ |
| info(デフォルト) | Info, Warn, Error |
| warn | Warn, Error |
| error | Errorのみ |
verboseフラグの影響
| フラグ | 効果 |
|---|---|
| なし | CLIレベルのログのみ |
| --verbose | サブモジュール([batch]等)のログも出力 |
メッセージの活用
問題の診断
- エラーメッセージ:
--log-level errorでエラーのみ表示 - 詳細ログ:
--log-level debug --verboseで最も詳細な情報 - 進捗のみ:
--log-level info(デフォルト)で進捗と結果のみ
ログの保存
# ログをファイルに保存
lightfile-shot /path/to/images 2>&1 | tee optimization.log
# エラーのみをファイルに保存
lightfile-shot /path/to/images 2> errors.log
# ジャーナル機能で詳細記録
lightfile-shot /path/to/images --journal result.ndjson