ファイルベーストレースプロバイダライブラリ。
トレースメッセージをローテーション付きテキストファイルへ同期書き込みする クロスプラットフォームプロバイダです。
trace-etw-util (Windows ETW) および trace-syslog-util (Linux syslog) と 同じ init / write / dispose インターフェースを提供します。
2026-03-31 12:34:56.789 I メッセージテキストレベル文字: C=CRITICAL / E=ERROR / W=WARNING / I=INFO / V=VERBOSE
TRACE_FILE_UTIL_EXPORTtrace_file_provider_t *TRACE_FILE_UTIL_API trace_file_provider_init ( const char *path, size_t max_bytes, int generations )ファイルトレースプロバイダを初期化する。
指定されたファイルパスへの書き込みを開始します。
ファイルが存在する場合は追記します。存在しない場合は新規作成します。
max_bytes に 0 を指定した場合は TRACE_FILE_DEFAULT_MAX_BYTES を使用します。
generations に 0 以下を指定した場合は TRACE_FILE_DEFAULT_GENERATIONS を使用します。
成功時: ハンドル。失敗時: NULL。
書き込み後にファイルサイズが max_bytes に達すると、以下の名前でファイルを保持します。
path ... 現在のトレースファイル (新規作成)
path.1 ... 直前の世代
path.2 ... 2 世代前
path.N ... N 世代前 (N = generations)generations 世代を超えた古いファイルは削除されます。
trace_file_provider_t *h = trace_file_provider_init(
"C:\\logs\\myapp.log", 0, 0);TRACE_FILE_UTIL_EXPORT int TRACE_FILE_UTIL_API trace_file_provider_write ( trace_file_provider_t *handle, int level, const char *message )ファイルへトレースメッセージを書き込む。
タイムスタンプとトレースレベル文字を付加し 1 行で書き込みます。
書き込み後にファイルサイズが max_bytes に達した場合はローテーションします。
handle または message が NULL の場合は何もせず 0 を返します。
ファイルがロックされている等の I/O 失敗は呼び出し元をブロックせず -1 を返します。
成功 0 / 失敗 -1。
TRACE_FILE_UTIL_EXPORT void TRACE_FILE_UTIL_API trace_file_provider_dispose ( trace_file_provider_t *handle )ファイルトレースプロバイダを終了する。
ファイルハンドルを閉じ、ロック / mutex を解放してメモリを解放します。
ハンドルが NULL の場合は何もしません。
#define TRACE_FILE_LV_CRITICAL 0致命的エラー (trace-util.h の TRACE_LV_CRITICAL と同値)。
#define TRACE_FILE_LV_ERROR 1エラー (trace-util.h の TRACE_LV_ERROR と同値)。
#define TRACE_FILE_LV_WARNING 2警告 (trace-util.h の TRACE_LV_WARNING と同値)。
#define TRACE_FILE_LV_INFO 3情報 (trace-util.h の TRACE_LV_INFO と同値)。
#define TRACE_FILE_LV_VERBOSE 4詳細 / デバッグ (trace-util.h の TRACE_LV_VERBOSE と同値)。
#define TRACE_FILE_UTIL_EXPORTDLL エクスポート/インポート制御マクロ。
ビルド条件に応じて以下の値を取ります。
| 条件 | 値 |
|---|---|
| Linux (非 Windows) | (空) |
Windows / __INTELLISENSE__ 定義時 |
(空) |
Windows / TRACE_FILE_UTIL_STATIC 定義時 (静的リンク) |
(空) |
Windows / TRACE_FILE_UTIL_EXPORTS 定義時 (DLL ビルド) |
__declspec(dllexport) |
Windows / TRACE_FILE_UTIL_EXPORTS 未定義時 (DLL 利用側) |
__declspec(dllimport) |
#define TRACE_FILE_UTIL_API呼び出し規約マクロ。
Windows 環境では __stdcall 呼び出し規約を指定します。
Linux (非 Windows) 環境では空に展開されます。
既に定義済みの場合は再定義されません。
#define TRACE_FILE_DEFAULT_MAX_BYTES ((size_t)(10 * 1024 * 1024))トレースファイル 1 世代あたりの既定最大サイズ (バイト)。
この値を超えるとローテーションが実行されます。
trace_file_provider_init の max_bytes に 0 を指定した場合に使用されます。
#define TRACE_FILE_DEFAULT_GENERATIONS 5保持するトレースファイル世代数の既定値。
ローテーション時に path.1 〜 path.N のファイルを保持します。
trace_file_provider_init の generations に 0 以下を指定した場合に使用されます。
typedef struct trace_file_provider trace_file_provider_t;ファイルトレースプロバイダハンドル (不透明型)。