/* * @Author: Lucius * @Date: 2023-03-25 14:05:20 * @LastEditTime: 2023-03-27 17:11:09 * @LastEditors: Lucius * @Description: * @FilePath: /23Mar25_PrintLOG/program/include/printlog.h */ #ifndef PRINT_LOG_H_ #define PRINT_LOG_H_ #define ERROR_LOG_OK 0 /**< 错误日记ok标识*/ #define ERROR_LOG_SET_TYPE -1 /**< 错误日记设置类型*/ #define PRINT_RUN_MODE 1 /**< 打印运行的模式*/ #define PRINT_PROCESS_MODE 0 /**< 打印进程模式*/ #define PRINT_THREAD_MODE 1 /**< 打印线程模式*/ /** 打印日记的类型*/ enum __PRINT_LOG_TYPE { LOG_TYPE_NULL = 0x0, /**< 不打印调试信息 */ LOG_TYPE_ERROR = (1 << 0), /**< 打印错误调试信息 */ LOG_TYPE_WARNING = (1 << 1), /**< 打印警告调试信息 */ LOG_TYPE_INFO = (1 << 2), /**< 打印提示调试信息 */ LOG_TYPE_DEBUG = (1 << 3), /**< 打印调试信息 */ }; enum __PRINT_LOG_DEBUGFLAG { dDebugFlag_main = 0, dDebugFlag_Max }; void SetDebugFlag(unsigned int tInputDebugFlag); int HaveDebugFlag(unsigned int tInputDebugFlag); /** * \fn int SetLogType(char logType, int enable) * \brief 设置打印类型 * \param logType [in] 打印信息的类型 * \code enum __PRINT_LOG_TYPE { LOG_TYPE_NULL = 0x0, // 不打印调试信息 LOG_TYPE_ERROR = (1 << 0), // 打印错误调试信息 LOG_TYPE_WARNING = (1 << 1), // 打印警告调试信息 LOG_TYPE_INFO = (1 << 2), // 打印提示调试信息 LOG_TYPE_DEBUG = (1 << 3), // 打印调试信息 }; * \endcode * \param enable [in] 设置相应类型是否生效 \n * 1:开启 \n * 0:关闭 * \return * 1 : 设置成功 \n * 0 : 设置失败 * \sa __PRINT_LOG_TYPE */ int SetLogType(char logType, int enable); /** * \fn void SetLogTypesByParams(char *pParams) * \brief 通过参数设置打印类型,功能类型SetLogType函数。 * \param pParams [in] 打印类型描述参数 \n * 字符串中包含如下字母 \n * E:打印错误调试信息 \n * W:打印警告调试信息 \n * I:打印提示调试信息 \n * D:打印调试信息 \n * \return 无 */ void SetLogTypesByParams(char *pParams); /** * \fn int SetprocessName(const char *pFileName) * \brief 设置进程打印的文件名。 * \param pFileName [in] 文件名描述 * \return * < 0:设置失败 \n * 0: 设置成功 */ int SetprocessName(const char *pFileName); /** * \fn int SetPrintParameter(int parameterCode, char *parameterValue, int maxValueLen) * \brief 设置打印库参数。 * \param parameterCode [in] 参数编码 * \code * #define PRINT_PROCESS_MODE 0 //进程模式 * #define PRINT_THREAD_MODE 1 //线程模式 * \endcode * \param parameterValue [out] 参数值 * \param maxValueLen [in] 参数最大长度 * * \return * < 0:设置失败 \n * 0:设置成功 */ int SetPrintParameter(int parameterCode, int *parameterValue, int maxValueLen); /** * \fn int GetLogType(void) * \brief 获得打印类型 * \param 无 * \return 返回打印类型 */ int GetLogType(void); /** * \fn void PrintLog(enum __PRINT_LOG_DEBUGFLAG debugflag, enum __PRINT_LOG_TYPE logType, const char *pFile, const char *pFunction, int line, const char *pFormat, ...) * \brief 打印格式化信息。 * \param logType [in] 打印信息的类型:error、warning、info * \param pFile [in] 打印函数所在的文件名 * \param pFunction [in] 打印代码所在的函数名 * \param line [in] 打印代码所在的文件的行数 * \param pFormat [in] 打印格式化信息 * * \return 无 */ void PrintLog(enum __PRINT_LOG_DEBUGFLAG debugflag, enum __PRINT_LOG_TYPE logType, const char *pFile, const char *pFunction, int line, const char *pFormat, ...); /** * \def _PrintLog_(type, fmt...) * \brief 打印日记 * \param type [in] 类型 * \code enum __PRINT_LOG_TYPE { LOG_TYPE_NULL = 0x0, // 不打印调试信息 LOG_TYPE_ERROR = (1 << 0), // 打印错误调试信息 LOG_TYPE_WARNING = (1 << 1), // 打印警告调试信息 LOG_TYPE_INFO = (1 << 2), // 打印提示调试信息 LOG_TYPE_DEBUG = (1 << 3), // 打印调试信息 }; * \endcode * \param fmt [in] 格式 */ #define _PrintLog_(debugflag, type, fmt...) \ PrintLog(debugflag, type, __FILE__, __FUNCTION__, __LINE__, fmt) /* 打印不同类型信息 */ /** * \def PrintErr(fmt...) * \brief 打印错误信息 * \param fmt [in] 格式 * \sa _PrintLog_ */ #define PrintErr(debugflag, fmt...) _PrintLog_(debugflag, LOG_TYPE_ERROR, fmt) /** * \def PrintWarn(fmt...) * \brief 打印警告信息 * \param fmt [in] 格式 * \sa _PrintLog_ */ #define PrintWarn(debugflag, fmt...) _PrintLog_(debugflag, LOG_TYPE_WARNING, fmt) /** * \def PrintInfo(fmt...) * \brief 打印信息 * \param fmt [in] 格式 * \sa _PrintLog_ */ #define PrintInfo(debugflag, fmt...) _PrintLog_(debugflag, LOG_TYPE_INFO, fmt) /** * \def PrintDebug(fmt...) * \brief 打印调试信息 * \param fmt [in] 格式 * \sa _PrintLog_ */ #define PrintDebug(debugflag, fmt...) _PrintLog_(debugflag, LOG_TYPE_DEBUG, fmt) #endif /* DEBUGLOG_H_ */