Document of c-modernization-kit (util) 1.0.0
Loading...
Searching...
No Matches
trace-util.h
Go to the documentation of this file.
1
58
59#ifndef TRACE_UTIL_H
60#define TRACE_UTIL_H
61
62/* size_t (trace_hex_write / trace_hex_writef で使用) */
63#include <stddef.h>
64/* int64_t (trace_modify_name で使用) */
65#include <inttypes.h>
66
67/* 内部で使用するプラットフォーム固有ヘッダー */
68#ifdef _WIN32
69#include <trace-etw-util.h>
70#else /* !_WIN32 */
71#include <trace-syslog-util.h>
72#endif /* _WIN32 */
73
74/* ===== デフォルトプロバイダ定義 (Windows) ===== */
75
76#ifdef _WIN32
77
82#define TRACE_DEFAULT_PROVIDER_NAME "Company.Product"
83
90#define TRACE_DEFAULT_PROVIDER_GUID \
91 (0xc3a7b5d1, 0x4e2f, 0x4a89, 0x96, 0xc8, 0xd7, 0xe9, 0xf1, 0xa2, 0xb3, 0xc4)
92
100#define TRACE_DEFAULT_PROVIDER_GUID_STR \
101 "c3a7b5d1-4e2f-4a89-96c8-d7e9f1a2b3c4"
102
103#endif /* _WIN32 */
104
105/* ===== DLL エクスポート / インポート制御マクロ ===== */
106
107#ifdef DOXYGEN
108
123#define TRACE_UTIL_EXPORT
124
133#define TRACE_UTIL_API
134
135#else /* !DOXYGEN */
136
137#ifndef _WIN32
138 #define TRACE_UTIL_EXPORT
139 #define TRACE_UTIL_API
140#else /* _WIN32 */
141 #ifndef __INTELLISENSE__
142 #ifndef TRACE_UTIL_STATIC
143 #ifdef TRACE_UTIL_EXPORTS
144 #define TRACE_UTIL_EXPORT __declspec(dllexport)
145 #else /* !TRACE_UTIL_EXPORTS */
146 #define TRACE_UTIL_EXPORT __declspec(dllimport)
147 #endif /* TRACE_UTIL_EXPORTS */
148 #else /* TRACE_UTIL_STATIC */
149 #define TRACE_UTIL_EXPORT
150 #endif /* TRACE_UTIL_STATIC */
151 #else /* __INTELLISENSE__ */
152 #define TRACE_UTIL_EXPORT
153 #endif /* __INTELLISENSE__ */
154 #ifndef TRACE_UTIL_API
155 #define TRACE_UTIL_API __stdcall
156 #endif /* TRACE_UTIL_API */
157#endif /* _WIN32 */
158
159#endif /* DOXYGEN */
160
161/* ===== メッセージ長制限 ===== */
162
172#define TRACE_MESSAGE_MAX_BYTES 1024
173
184#define TRACE_HEX_MAX_DATA_BYTES 341
185
186/* ===== 共通トレースレベル ===== */
187
212
213/* ===== デフォルトトレースレベル ===== */
214
221#define TRACE_DEFAULT_OS_LEVEL TRACE_LV_INFO
222
229#define TRACE_DEFAULT_FILE_LEVEL TRACE_LV_ERROR
230
238#define TRACE_DEFAULT_STDERR_LEVEL TRACE_LV_NONE
239
240/* ===== 不透明ハンドル型 ===== */
241
244
245/* ===== API 関数 ===== */
246
247#ifdef __cplusplus
248extern "C"
249{
250#endif /* __cplusplus */
251
288 trace_init(void);
289
314
339
375 trace_write(trace_provider_t *handle, enum trace_level level, const char *message);
376
409 trace_writef(trace_provider_t *handle, enum trace_level level, const char *format, ...);
410
457 trace_hex_write(trace_provider_t *handle, enum trace_level level,
458 const void *data, size_t size, const char *message);
459
507 const void *data, size_t size, const char *format, ...);
508
553 trace_modify_name(trace_provider_t *handle, const char *name, int64_t identifier);
554
581
617 trace_modify_filetrc(trace_provider_t *handle, const char *path,
618 enum trace_level level, size_t max_bytes, int generations);
619
650
666
682
698
718
719#ifdef __cplusplus
720}
721#endif /* __cplusplus */
722
723#endif /* TRACE_UTIL_H */
トレースプロバイダハンドル構造体 (内部定義)。
int64_t identifier
アプリケーション管理識別番号 (診断用)。0 = 識別番号なし。
ETW (Event Tracing for Windows) ヘルパーライブラリ。
syslog ヘルパーライブラリ。
TRACE_UTIL_EXPORT int TRACE_UTIL_API trace_modify_stderrtrc(trace_provider_t *handle, enum trace_level level)
stderr トレースのスレッショルドレベルを設定する。
trace_level
アプリケーション共通トレースレベル。
Definition trace-util.h:204
@ TRACE_LV_ERROR
エラー。
Definition trace-util.h:206
@ TRACE_LV_WARNING
警告。
Definition trace-util.h:207
@ TRACE_LV_CRITICAL
致命的エラー。
Definition trace-util.h:205
@ TRACE_LV_VERBOSE
詳細 (デバッグ)。
Definition trace-util.h:209
@ TRACE_LV_INFO
情報。
Definition trace-util.h:208
@ TRACE_LV_NONE
出力しない。
Definition trace-util.h:210
TRACE_UTIL_EXPORT int TRACE_UTIL_API trace_writef(trace_provider_t *handle, enum trace_level level, const char *format,...)
printf 形式でトレースメッセージを書き込む。
#define TRACE_UTIL_API
呼び出し規約マクロ。
Definition trace-util.h:133
struct trace_provider trace_provider_t
トレースプロバイダハンドル (不透明型)。
Definition trace-util.h:243
TRACE_UTIL_EXPORT void TRACE_UTIL_API trace_dispose(trace_provider_t *handle)
トレースプロバイダを終了し、リソースを解放する。
TRACE_UTIL_EXPORT int TRACE_UTIL_API trace_modify_ostrc(trace_provider_t *handle, enum trace_level level)
OS トレースのスレッショルドレベルを設定する。
TRACE_UTIL_EXPORT int TRACE_UTIL_API trace_hex_write(trace_provider_t *handle, enum trace_level level, const void *data, size_t size, const char *message)
バイナリデータを HEX テキスト形式でトレースに書き込む。
TRACE_UTIL_EXPORT trace_provider_t *TRACE_UTIL_API trace_init(void)
トレースプロバイダを初期化する。
TRACE_UTIL_EXPORT int TRACE_UTIL_API trace_modify_filetrc(trace_provider_t *handle, const char *path, enum trace_level level, size_t max_bytes, int generations)
ファイルトレースの出力先と設定を変更する。
TRACE_UTIL_EXPORT enum trace_level TRACE_UTIL_API trace_get_stderrtrc(trace_provider_t *handle)
stderr トレースの現在のスレッショルドレベルを取得する。
TRACE_UTIL_EXPORT int TRACE_UTIL_API trace_stop(trace_provider_t *handle)
トレースプロバイダを停止する。
TRACE_UTIL_EXPORT int TRACE_UTIL_API trace_start(trace_provider_t *handle)
トレースプロバイダを開始する。
TRACE_UTIL_EXPORT enum trace_level TRACE_UTIL_API trace_get_filetrc(trace_provider_t *handle)
ファイルトレースの現在のスレッショルドレベルを取得する。
TRACE_UTIL_EXPORT enum trace_level TRACE_UTIL_API trace_get_ostrc(trace_provider_t *handle)
OS トレースの現在のスレッショルドレベルを取得する。
#define TRACE_UTIL_EXPORT
DLL エクスポート/インポート制御マクロ。
Definition trace-util.h:123
TRACE_UTIL_EXPORT int TRACE_UTIL_API trace_hex_writef(trace_provider_t *handle, enum trace_level level, const void *data, size_t size, const char *format,...)
バイナリデータを HEX テキスト形式でトレースに書き込む (printf 形式ラベル)。
TRACE_UTIL_EXPORT int TRACE_UTIL_API trace_write(trace_provider_t *handle, enum trace_level level, const char *message)
トレースメッセージを書き込む。
TRACE_UTIL_EXPORT int TRACE_UTIL_API trace_modify_name(trace_provider_t *handle, const char *name, int64_t identifier)
トレースプロバイダの識別名と識別番号を設定する。