# trace_provider

    struct trace_provider {
        int64_t identifier;
        syslog_provider_t *syslog_handle;
        enum trace_level os_level;
        enum trace_level file_level;
        trace_file_provider_t *file_handle;
        enum trace_level stderr_level;
        volatile int running;
        pthread_rwlock_t config_rwlock;
        int config_rwlock_initialized;
        int _pad_end;
    }

トレースプロバイダハンドル構造体 (内部定義)。

# 1 属性

## 1.1 identifier

    int64_t identifier;

アプリケーション管理識別番号 (診断用)。0 = 識別番号なし。

## 1.2 syslog_handle

    syslog_provider_t *syslog_handle;

syslog プロバイダハンドル (Linux)。

## 1.3 os_level

    enum trace_level os_level;

OS トレース (ETW/syslog) のスレッショルドレベル。デフォルト: TRACE_LV_INFO。

## 1.4 file_level

    enum trace_level file_level;

ファイルトレースのスレッショルドレベル。デフォルト: TRACE_LV_ERROR。

## 1.5 file_handle

    trace_file_provider_t *file_handle;

ファイルトレースプロバイダハンドル。NULL = ファイルトレース無効。

## 1.6 stderr_level

    enum trace_level stderr_level;

stderr トレースのスレッショルドレベル。デフォルト: TRACE_LV_NONE。

## 1.7 running

    volatile int running;

実行状態フラグ (0=停止中, 1=実行中)。

## 1.8 config_rwlock

    pthread_rwlock_t config_rwlock;

読み書きロック。write 系は共有ロック、設定変更・stop・dispose は排他ロック。

## 1.9 config_rwlock_initialized

    int config_rwlock_initialized;

config_rwlock が初期化済みかどうかのフラグ。

## 1.10 _pad_end

    int _pad_end;

パディング (構造体サイズを 8 バイト境界に揃える)。