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
203 enum trace_level
204{
205 TRACE_LV_CRITICAL = 0,
206 TRACE_LV_ERROR = 1,
207 TRACE_LV_WARNING = 2,
208 TRACE_LV_INFO = 3,
209 TRACE_LV_VERBOSE = 4,
210 TRACE_LV_NONE = 5
211};
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
243 typedef struct trace_provider trace_provider_t;
244
245/* ===== API 関数 ===== */
246
247#ifdef __cplusplus
248 extern "C"
249{
250#endif /* __cplusplus */
251
287 TRACE_UTIL_EXPORT trace_provider_t *TRACE_UTIL_API
288 trace_init(void);
289
312 TRACE_UTIL_EXPORT int TRACE_UTIL_API
313 trace_start(trace_provider_t *handle);
314
337 TRACE_UTIL_EXPORT int TRACE_UTIL_API
338 trace_stop(trace_provider_t *handle);
339
374 TRACE_UTIL_EXPORT int TRACE_UTIL_API
375 trace_write(trace_provider_t *handle, enum trace_level level, const char *message);
376
408 TRACE_UTIL_EXPORT int TRACE_UTIL_API
409 trace_writef(trace_provider_t *handle, enum trace_level level, const char *format, ...);
410
456 TRACE_UTIL_EXPORT int TRACE_UTIL_API
457 trace_hex_write(trace_provider_t *handle, enum trace_level level,
458 const void *data, size_t size, const char *message);
459
505 TRACE_UTIL_EXPORT int TRACE_UTIL_API
506 trace_hex_writef(trace_provider_t *handle, enum trace_level level,
507 const void *data, size_t size, const char *format, ...);
508
552 TRACE_UTIL_EXPORT int TRACE_UTIL_API
553 trace_modify_name(trace_provider_t *handle, const char *name, int64_t identifier);
554
579 TRACE_UTIL_EXPORT int TRACE_UTIL_API
580 trace_modify_ostrc(trace_provider_t *handle, enum trace_level level);
581
616 TRACE_UTIL_EXPORT int TRACE_UTIL_API
617 trace_modify_filetrc(trace_provider_t *handle, const char *path,
618 enum trace_level level, size_t max_bytes, int generations);
619
648 TRACE_UTIL_EXPORT int TRACE_UTIL_API
649 trace_modify_stderrtrc(trace_provider_t *handle, enum trace_level level);
650
664 TRACE_UTIL_EXPORT enum trace_level TRACE_UTIL_API
665 trace_get_ostrc(trace_provider_t *handle);
666
680 TRACE_UTIL_EXPORT enum trace_level TRACE_UTIL_API
681 trace_get_filetrc(trace_provider_t *handle);
682
696 TRACE_UTIL_EXPORT enum trace_level TRACE_UTIL_API
697 trace_get_stderrtrc(trace_provider_t *handle);
698
716 TRACE_UTIL_EXPORT void TRACE_UTIL_API
717 trace_dispose(trace_provider_t *handle);
718
719#ifdef __cplusplus
720}
721#endif /* __cplusplus */
722
723#endif /* TRACE_UTIL_H */
trace_provider
トレースプロバイダハンドル構造体 (内部定義)。
Definition trace-provider.c:37
trace_provider::identifier
int64_t identifier
アプリケーション管理識別番号 (診断用)。0 = 識別番号なし。
Definition trace-provider.c:39
trace-etw-util.h
ETW (Event Tracing for Windows) ヘルパーライブラリ。
trace-syslog-util.h
syslog ヘルパーライブラリ。
trace_modify_stderrtrc
TRACE_UTIL_EXPORT int TRACE_UTIL_API trace_modify_stderrtrc(trace_provider_t *handle, enum trace_level level)
stderr トレースのスレッショルドレベルを設定する。
Definition trace-provider.c:933
trace_level
trace_level
アプリケーション共通トレースレベル。
Definition trace-util.h:204
TRACE_LV_ERROR
@ TRACE_LV_ERROR
エラー。
Definition trace-util.h:206
TRACE_LV_WARNING
@ TRACE_LV_WARNING
警告。
Definition trace-util.h:207
TRACE_LV_CRITICAL
@ TRACE_LV_CRITICAL
致命的エラー。
Definition trace-util.h:205
TRACE_LV_VERBOSE
@ TRACE_LV_VERBOSE
詳細 (デバッグ)。
Definition trace-util.h:209
TRACE_LV_INFO
@ TRACE_LV_INFO
情報。
Definition trace-util.h:208
TRACE_LV_NONE
@ TRACE_LV_NONE
出力しない。
Definition trace-util.h:210
trace_writef
TRACE_UTIL_EXPORT int TRACE_UTIL_API trace_writef(trace_provider_t *handle, enum trace_level level, const char *format,...)
printf 形式でトレースメッセージを書き込む。
Definition trace-provider.c:578
TRACE_UTIL_API
#define TRACE_UTIL_API
呼び出し規約マクロ。
Definition trace-util.h:133
trace_provider_t
struct trace_provider trace_provider_t
トレースプロバイダハンドル (不透明型)。
Definition trace-util.h:243
trace_dispose
TRACE_UTIL_EXPORT void TRACE_UTIL_API trace_dispose(trace_provider_t *handle)
トレースプロバイダを終了し、リソースを解放する。
Definition trace-provider.c:779
trace_modify_ostrc
TRACE_UTIL_EXPORT int TRACE_UTIL_API trace_modify_ostrc(trace_provider_t *handle, enum trace_level level)
OS トレースのスレッショルドレベルを設定する。
Definition trace-provider.c:869
trace_hex_write
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 テキスト形式でトレースに書き込む。
Definition trace-provider.c:712
trace_init
TRACE_UTIL_EXPORT trace_provider_t *TRACE_UTIL_API trace_init(void)
トレースプロバイダを初期化する。
Definition trace-provider.c:288
trace_modify_filetrc
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)
ファイルトレースの出力先と設定を変更する。
Definition trace-provider.c:890
trace_get_stderrtrc
TRACE_UTIL_EXPORT enum trace_level TRACE_UTIL_API trace_get_stderrtrc(trace_provider_t *handle)
stderr トレースの現在のスレッショルドレベルを取得する。
Definition trace-provider.c:990
trace_stop
TRACE_UTIL_EXPORT int TRACE_UTIL_API trace_stop(trace_provider_t *handle)
トレースプロバイダを停止する。
Definition trace-provider.c:395
trace_start
TRACE_UTIL_EXPORT int TRACE_UTIL_API trace_start(trace_provider_t *handle)
トレースプロバイダを開始する。
Definition trace-provider.c:374
trace_get_filetrc
TRACE_UTIL_EXPORT enum trace_level TRACE_UTIL_API trace_get_filetrc(trace_provider_t *handle)
ファイルトレースの現在のスレッショルドレベルを取得する。
Definition trace-provider.c:972
trace_get_ostrc
TRACE_UTIL_EXPORT enum trace_level TRACE_UTIL_API trace_get_ostrc(trace_provider_t *handle)
OS トレースの現在のスレッショルドレベルを取得する。
Definition trace-provider.c:954
TRACE_UTIL_EXPORT
#define TRACE_UTIL_EXPORT
DLL エクスポート/インポート制御マクロ。
Definition trace-util.h:123
trace_hex_writef
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 形式ラベル)。
Definition trace-provider.c:739
trace_write
TRACE_UTIL_EXPORT int TRACE_UTIL_API trace_write(trace_provider_t *handle, enum trace_level level, const char *message)
トレースメッセージを書き込む。
Definition trace-provider.c:538
trace_modify_name
TRACE_UTIL_EXPORT int TRACE_UTIL_API trace_modify_name(trace_provider_t *handle, const char *name, int64_t identifier)
トレースプロバイダの識別名と識別番号を設定する。
Definition trace-provider.c:817