Lfs Common --> Log

本文详细介绍了日志宏定义及其使用方法,包括不同级别的日志输出(FATAL、ERROR、WARNING、Debug、INFO),并展示了如何在特定模块中进行日志记录。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

#ifndef LOG_H_
#define  LOG_H_
#define MODULE	   0
#define	LOG_FATAL(fmt,...) 		lfs::common::Log::Out(MODULE, 0, __FILE__, __FUNCTION__, __LINE__, fmt, ##__VA_ARGS__)
#define	LOG_ERROR(fmt,...) 		lfs::common::Log::Out(MODULE, 1, __FILE__, __FUNCTION__, __LINE__, fmt, ##__VA_ARGS__)
#define	LOG_WARNING(fmt,...)	lfs::common::Log::Out(MODULE, 2, __FILE__, __FUNCTION__, __LINE__, fmt, ##__VA_ARGS__)
#define	LOG_DEBUG(fmt,...) 		lfs::common::Log::Out(MODULE, 3, __FILE__, __FUNCTION__, __LINE__, fmt, ##__VA_ARGS__)
#define	LOG_INFO(fmt,...) 		lfs::common::Log::Out(MODULE, 4, __FILE__, __FUNCTION__, __LINE__, fmt, ##__VA_ARGS__)
namespace lfs{
namespace common{
class Log
{
public:
	static void Out(const int moduleIndex, const int lvl, const char * fileName, const char * funcName, int line, const char * fmt, ...);
protected:
private:
}; 
}/*  Namespace common */
}/*  Namespace lfs */
#endif /* LOG_H */




#include "Log.h"

#include <stdarg.h>
#include <stdio.h>
#include <errno.h>
#include <time.h>
namespace lfs{
namespace common{
void Log::Out(const int moduleIndex, const int lvl, const char * fileName, const char * funcName, int line, const char * fmt, ...)
{
	static const char * moduleName[]={
		"LFS",
	};
	static const char * levelName[] = {
		"FATAL",
		"ERROR",
		"WARNING",
		"Debug",
		"INFO"
	};
	time_t now;                                                      
	char dbgtime[26] ;                                                  
	time(&now);                                                         
	ctime_r(&now, dbgtime);                                             
	dbgtime[24] = '\0';       
	// with time
	// printf("[%s] [%s][%s][%s:%d]", moduleName[moduleIndex], levelName[lvl], dbgtime, fileName, line);
	// no time - no funcName
	// printf("[%s] [%s][%s:%d]", moduleName[moduleIndex], levelName[lvl], fileName, line);
	// no time with funcName 
	printf("[%s] [%s][%s:%s:%d]", moduleName[moduleIndex], levelName[lvl], fileName, funcName, line);
	va_list pArg;
	va_start(pArg, fmt);
	vprintf(fmt, pArg);
	va_end(pArg);
	printf("\n");
}
}/*  Namespace common */
}/*  Namespace lfs */


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值