cmn-clib(CommonLibraryForC)
C言語共通ライブラリ
 全て データ構造 ファイル 関数 変数 型定義 列挙型 列挙値 マクロ定義
CmnLog.h
[詳解]
1 
12 #ifndef CMNCLIB_CMN_LOG_H
13 #define CMNCLIB_CMN_LOG_H
14 
15 #include <time.h>
16 #include <stdarg.h>
17 
18 #include "cmnclib/Common.h"
19 #include "cmnclib/CmnThread.h"
20 
21 
23 typedef struct tag_CmnLogMessage {
24  char *code;
25  char *msg;
28 
30 typedef struct tag_CmnLogEx {
31  int level;
32  char *file;
35 } CmnLogEx;
36 
38 typedef enum {
47 
48 /* --- CmnLog.c --- */
49 /* 標準ログ出力関数初期化処理 */
50 D_EXTERN int CmnLog_Init(const char* logFile, CMN_LOG_LEVEL level, const char* msgFile);
51 /* 標準ログ出力共通関数終了処理 */
52 D_EXTERN void CmnLog_End();
53 /* 標準ログ出力(メッセージ指定) */
54 D_EXTERN void CmnLog_Put(int level, const char *msgCode, ...);
55 /* 標準ログ出力(メッセージコード指定) */
56 D_EXTERN void CmnLog_PutByCode(CmnLogEx* log, CMN_LOG_LEVEL level, const char* msgCode, ...);
57 /* cmn-clibの内部ログ出力設定 */
58 D_EXTERN void CmnLog_InitCmnClibLog(CmnLogEx *log, CMN_LOG_LEVEL level);
59 /* cmn-clibの内部ログ出力終了 */
60 D_EXTERN void CmnLog_EndCmnClibLog();
61 /* cmn-clibの内部ログ出力 */
62 D_EXTERN void CmnLog_PutCmnClibLog(CMN_LOG_LEVEL level, const char* msgCode, ...);
63 
64 /* --- CmnLogEx.c --- */
65 /* 拡張ログ出力関数初期化処理 */
66 D_EXTERN CmnLogEx* CmnLogEx_Create(const char* logFile, CMN_LOG_LEVEL level, const char* msgFile);
67 /* 拡張ログ出力共通関数終了処理 */
68 D_EXTERN void CmnLogEx_Free(CmnLogEx *log);
69 /* 拡張ログ出力(メッセージ指定) */
70 D_EXTERN void CmnLogEx_Put(CmnLogEx* log, CMN_LOG_LEVEL level, const char* msg, ...);
71 /* 拡張ログ出力(メッセージコード指定) */
72 D_EXTERN void CmnLogEx_PutByCode(CmnLogEx* log, CMN_LOG_LEVEL level, const char* msgCode, ...);
73 /* 拡張ログ出力(ログ出力共通) */
74 D_EXTERN void cmnLogEx_PutLog(CmnLogEx* log, CMN_LOG_LEVEL level, const char* msg, va_list args);
75 
76 /* --- CmnLogMessage.c --- */
77 /* ログメッセージ定義ファイル読み込み */
78 D_EXTERN CmnLogMessage* CmnLogMessage_Create(const char* msgFile);
79 /* ログメッセージリスト解放処理 */
80 D_EXTERN void CmnLogMessage_Free(CmnLogMessage* list);
81 /* ログメッセージ取得関数 */
82 D_EXTERN int CmnLogMessage_Get(CmnLogMessage* list, const char* msg_code, CmnLogMessage* msg);
83 
84 /* cmn-clib内部ログ出力ラッパーマクロ */
85 #ifdef CMN_CLIB_HI_PERFORMANCE
86  #define CMNLOG_TRACE_START()
87  #define CMNLOG_TRACE_END()
88 #else
89  #define CMNLOG_TRACE_START() clock_t cmnlogtrace_stclock=clock();CmnLog_PutCmnClibLog(CMN_LOG_LEVEL_TRACE, "START %s", __func__)
90  #define CMNLOG_TRACE_END() CmnLog_PutCmnClibLog(CMN_LOG_LEVEL_TRACE, "END %s(clocks=%d)", __func__, clock() - cmnlogtrace_stclock)
91 #endif
92 #define CMNLOG_TRACE(msg, ...) CmnLog_PutCmnClibLog(CMN_LOG_LEVEL_TRACE, (msg), __VA_ARGS__)
93 #define CMNLOG_DEBUG(msg, ...) CmnLog_PutCmnClibLog(CMN_LOG_LEVEL_DEBUG, (msg), __VA_ARGS__)
94 #define CMNLOG_INFO(msg, ...) CmnLog_PutCmnClibLog(CMN_LOG_LEVEL_INFO, (msg), __VA_ARGS__)
95 #define CMNLOG_WARN(msg, ...) CmnLog_PutCmnClibLog(CMN_LOG_LEVEL_WARN, (msg), __VA_ARGS__)
96 #define CMNLOG_ERROR(msg, ...) CmnLog_PutCmnClibLog(CMN_LOG_LEVEL_ERROR, (msg), __VA_ARGS__)
97 
98 #endif /* CMNCLIB_CMN_LOG_H */
99 
int level
Definition: CmnLog.h:31
Definition: CmnLog.h:41
char * msg
Definition: CmnLog.h:25
スレッドライブラリ ヘッダファイル
D_EXTERN void cmnLogEx_PutLog(CmnLogEx *log, CMN_LOG_LEVEL level, const char *msg, va_list args)
拡張ログ出力(内部用関数)
Definition: CmnLogEx.c:214
D_EXTERN CmnLogEx * CmnLogEx_Create(const char *logFile, CMN_LOG_LEVEL level, const char *msgFile)
拡張ログ出力関数初期化処理
Definition: CmnLogEx.c:78
Definition: CmnLog.h:39
char * file
Definition: CmnLog.h:32
D_EXTERN int CmnLogMessage_Get(CmnLogMessage *list, const char *msg_code, CmnLogMessage *msg)
ログメッセージ取得
Definition: CmnLogMessage.c:153
D_EXTERN void CmnLog_InitCmnClibLog(CmnLogEx *log, CMN_LOG_LEVEL level)
Definition: CmnLog.c:184
struct tag_CmnLogMessage CmnLogMessage
Definition: CmnLog.h:40
struct tag_CmnLogEx CmnLogEx
Definition: CmnLog.h:42
D_EXTERN CmnLogMessage * CmnLogMessage_Create(const char *msgFile)
ログメッセージ定義ファイル読み込み
Definition: CmnLogMessage.c:43
Definition: CmnLog.h:23
D_EXTERN void CmnLogEx_Put(CmnLogEx *log, CMN_LOG_LEVEL level, const char *msg,...)
拡張ログ出力
Definition: CmnLogEx.c:160
Definition: CmnLog.h:45
D_EXTERN void CmnLogEx_PutByCode(CmnLogEx *log, CMN_LOG_LEVEL level, const char *msgCode,...)
拡張ログ出力
Definition: CmnLogEx.c:183
D_EXTERN void CmnLogEx_Free(CmnLogEx *log)
拡張ログ出力共通関数終了処理
Definition: CmnLogEx.c:126
共通関数 メインヘッダファイル
D_EXTERN int CmnLog_Init(const char *logFile, CMN_LOG_LEVEL level, const char *msgFile)
標準ログ出力関数初期化処理
Definition: CmnLog.c:85
Definition: CmnLog.h:30
Definition: CmnLog.h:43
D_EXTERN void CmnLog_Put(int level, const char *msgCode,...)
標準ログ出力
Definition: CmnLog.c:130
struct tag_CmnLogMessage * next
Definition: CmnLog.h:26
D_EXTERN void CmnLog_PutByCode(CmnLogEx *log, CMN_LOG_LEVEL level, const char *msgCode,...)
標準ログ出力
Definition: CmnLog.c:158
D_EXTERN void CmnLog_EndCmnClibLog()
Definition: CmnLog.c:192
D_EXTERN void CmnLogMessage_Free(CmnLogMessage *list)
ログメッセージリスト解放処理
Definition: CmnLogMessage.c:120
D_EXTERN void CmnLog_End()
標準ログ出力共通関数終了処理
Definition: CmnLog.c:110
Definition: CmnThread.h:23
CMN_LOG_LEVEL
Definition: CmnLog.h:38
Definition: CmnLog.h:44
CmnLogMessage * list
Definition: CmnLog.h:33
D_EXTERN void CmnLog_PutCmnClibLog(CMN_LOG_LEVEL level, const char *msgCode,...)
cmn-clib内部ログ出力
Definition: CmnLog.c:211
char * code
Definition: CmnLog.h:24
CmnThreadMutex * mutex
Definition: CmnLog.h:34