123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148 |
- #ifndef LIBAOS_LOG_H
- #define LIBAOS_LOG_H
- #include <stdio.h>
- #include <stdlib.h>
- #include <time.h>
- #include <stdarg.h>
- #include <string.h>
- #ifdef __cplusplus
- extern "C"
- {
- #endif
- //----------------------------------------------
- //使用举例
- //RvcLog_init("./log/Proxy_a",1); //初始化
- //MFLog(LM_INFO,(LB,"test%d %s[%X]",i,"info test",(unsigned int)i)); //写info日志
- //MFLog(LM_DEBUG,(LB,"test%d",i)); //写debug日志
- //MFLog(LM_SYSTEM,(LB,"test%d",i)); //写system日志
- //MFLog(LM_WARNING,(LB,"test%d",i)); //写warn日志
- //MFLog(LM_ERROR,(LB,"test%d",i)); //写error日志
- //RvcLog_destroy(); //销毁
- //---------------------------------------------
- enum LogPriority
- {
- // = Note, this first argument *must* start at 1!
- LM_OFF = 0,
- /// Messages that contain information normally of use only when
- /// debugging a program (decimal 1).
- LM_DEBUG = 01,
- /// Messages indicating function-calling sequence (decimal 2).
- LM_TRACE = 02,
- /// Informational messages (decimal 4).
- LM_INFO = 04,
- /// Conditions that are not error conditions, but that may require
- /// special handling (decimal 8).
- LM_NOTICE = 010,
- /// Warning messages (decimal 16).
- LM_WARNING = 020,
- /// Error messages (decimal 32).
- LM_ERROR = 040,
- /// Critical conditions, such as hard device errors (decimal 128).
- LM_CRITICAL = 0100,
- /// The maximum logging priority.
- LM_MAX = LM_CRITICAL,
- /// Do not use!! This enum value ensures that the underlying
- /// integral type for this enum is at least 32 bits.
- LM_ENSURE_32_BITS = 0x7FFFFFFF
- };
- #ifndef _WIN32
- #define _snprintf snprintf
- #endif //NOT _WIN32
- #define MFLOG_BUFSIZE 2047
- #define MF_LOG_STR_BUFSIZE (16*1024L)
- #define LB szLogBuf, MFLOG_BUFSIZE
- char* AllocLogBuf(void);
- //void FreeLogBuf( char *pLogBuf );
- //公用方法
- void MakeLogPrefix(int nLevel, char* szLevel, char* szTime);
- int RvcLog_init(const char* log_dir, const char* log_name, int level, int show_file_line);
- int RvcLog_destroy();
- int RvcLog_log(const char* szSrcFileName, int iLine, int console, int iLevel, char* szLevel, char* szTime, char* szLog);
- #define aos_debug_log(Z) \
- do \
- { \
- char *szLogBuf = AllocLogBuf(); \
- char szLevel[10]; \
- char szTime[32]; \
- szLogBuf[MFLOG_BUFSIZE] = '\0'; \
- MakeLogPrefix( LM_DEBUG, szLevel, szTime ); \
- _snprintf Z; \
- RvcLog_log( __FILE__,__LINE__, 1, LM_DEBUG, szLevel, szTime, szLogBuf); \
- }while(0)
- #define aos_info_log(Z) \
- do \
- { \
- char *szLogBuf = AllocLogBuf(); \
- char szLevel[10]; \
- char szTime[32]; \
- szLogBuf[MFLOG_BUFSIZE] = 0; \
- MakeLogPrefix( LM_INFO, szLevel, szTime ); \
- _snprintf Z; \
- RvcLog_log( __FILE__,__LINE__, 1, LM_INFO, szLevel, szTime, szLogBuf); \
- }while(0)
- #define aos_warn_log(Z) \
- do \
- { \
- char *szLogBuf = AllocLogBuf(); \
- char szLevel[10]; \
- char szTime[32]; \
- szLogBuf[MFLOG_BUFSIZE] = 0; \
- MakeLogPrefix( LM_WARNING, szLevel, szTime ); \
- _snprintf Z; \
- RvcLog_log( __FILE__,__LINE__, 1, LM_WARNING, szLevel, szTime, szLogBuf); \
- }while(0)
- #define aos_error_log(Z) \
- do \
- { \
- char *szLogBuf = AllocLogBuf(); \
- char szLevel[10]; \
- char szTime[32]; \
- szLogBuf[MFLOG_BUFSIZE] = 0; \
- MakeLogPrefix( LM_ERROR, szLevel, szTime ); \
- _snprintf Z; \
- RvcLog_log( __FILE__,__LINE__, 1, LM_ERROR, szLevel, szTime, szLogBuf); \
- }while(0)
- #define aos_fatal_log(Z) \
- do \
- { \
- char *szLogBuf = AllocLogBuf(); \
- char szLevel[10]; \
- char szTime[32]; \
- szLogBuf[MFLOG_BUFSIZE] = 0; \
- MakeLogPrefix( LM_CRITICAL, szLevel, szTime ); \
- _snprintf(LB, Z); \
- RvcLog_log( __FILE__,__LINE__, 1, LM_CRITICAL, szLevel, szTime, szLogBuf); \
- }while(0)
- #ifdef __cplusplus
- }
- #endif
- #endif
|