目次 - SDL 3.0 API(機能別) - ログ
ログ処理
概要
優先度と分類付きのシンプルなログメッセージを扱う.
メッセージの重要度は, メッセージのSDL_LogPriorityで表す.
メッセージの分類は, メッセージのSDL_LogCategoryで表す.
全ての分類には最低優先度が設定されており, メッセージはその分類の最低優先度以上の場合のみ出力される.
SDL自身のログはデフォルトの優先度未満のため, デフォルトでは出力されない.
ログの詳細さはプログラム内でSDL_SetLogPriority()またはSDL_SetHint(SDL_HINT_LOGGING, ...)を使用するか, 環境変数"SDL_LOGGING"で変更できる.
環境変数はコンマで区切った 分類=レベル でSDLアプリケーションのデフォルトログレベルを設定する.
分類には番号, または"app", "error", "assert", "system", "audio", "video", "render", "input", "test"の1つ, またはその他の分類を表す * を指定できる.
レベルは数値のレベル, または"trace", "verbose", "debug", "info", "warn", "error", "critical"の1つ, またはその分類を無効化する"quiet"を指定できる.
全分類のログレベルを設定したい場合は, 分類を省略できる.
ヒントが設定されていない場合, デフォルトのログレベル環境変数は次の様になっている:
app=info,assert=warn,test=verbose,*=error
各環境のメッセージの出力先は次の通りである:
- Windows: デバッグ出力ストリーム
- Android: ログ出力
- その他: 標準エラー出力 (stderr)
関数が自動的に付けるため, メッセージの終端に改行(\n)を付ける必要はない.
複数の環境での動作を考慮するため, 1回の関数呼び出しで複数行を出力したい場合でもメッセージに改行をつけるべきではない. 環境固有の異常な動作をする可能性がある.
複数のメッセージを改行するのではなく, 1回の呼び出しは1行とすること.
それぞれのログ呼び出しはアトミックで, 複数のスレッドからログ出力した場合でもログが途中で途切れることはない.
関数
- SDL_GetDefaultLogOutputFunction
- SDL_GetLogOutputFunction - 現在のログ出力関数を得る
- SDL_GetLogPriority - ログの分類の重要度を得る
- SDL_Log - SDL_LOG_CATEGORY_APPLICATION分類ログをSDL_LOG_PRIORITY_INFOの重要度で出力する
- SDL_LogCritical - SDL_LOG_PRIORITY_CRITICALの重要度でログを出力する
- SDL_LogDebug - SDL_LOG_PRIORITY_DEBUGの重要度でログを出力する
- SDL_LogError - SDL_LOG_PRIORITY_ERRORの重要度でログを出力する
- SDL_LogInfo - SDL_LOG_PRIORITY_INFOの重要度でログを出力する
- SDL_LogMessage - 指定の分類と重要度でログを出力する
- SDL_LogMessageV - 指定の分類と重要度でログを出力する
- SDL_LogTrace - SDL_LOG_PRIORITY_TRACEの重要度でログを出力する
- SDL_LogVerbose - SDL_LOG_PRIORITY_VERBOSEの重要度でログを出力する
- SDL_LogWarn - SDL_LOG_PRIORITY_WARNの重要度でログを出力する
- SDL_ResetLogPriorities - 全ての重要度をデフォルトに戻す
- SDL_SetLogOutputFunction - ログ出力関数を置き換える
- SDL_SetLogPriorities - 全ての分類の重要度を設定する
- SDL_SetLogPriority - 分類の重要度を設定する
- SDL_SetLogPriorityPrefix
型
- SDL_LogOutputFunction - ログ出力関数のプロトタイプ型
列挙体
- SDL_LogCategory - 設定済みのログの分類の列挙体
- SDL_LogPriority - 定義済みのログの重要度の列挙体
SDL Wikiへのリンク
SDL3/CategoryLog - SDL Wiki