一个打印日志函数
2008-01-14 16:51
393 查看
#include<stdio.h>
#include<windows.h>
enum E_TraceLevel // ¸ú×Ù¼¶±ð
{
e_DEBUG = 0,
e_TRACE = 1,
e_ERROR = 2,
e_LOG = 3,
e_ALARM = 4,
e_FATAL = 5,
e_ASSERT= 6
};
int gRunLevel = e_DEBUG;
#define LOG_DEBUG e_DEBUG, __FILE__, __LINE__
#define LOG_TRACE e_TRACE, __FILE__, __LINE__
#define LOG_ERROR e_ERROR, __FILE__, __LINE__
#define LOG_LOG e_LOG, __FILE__, __LINE__
#define LOG_ALARM e_ALARM, __FILE__, __LINE__
#define LOG_FATAL e_FATAL, __FILE__, __LINE__
#define PRINTLOG PrintLog
void PrintLog (
IN E_TraceLevel _eTraceLevel
, IN const char *_sFile
, IN const int _iLine
, IN const char *_sFmt
, IN ...)
{
if(gRunLevel > _eTraceLevel) return;
va_list args;
char strInformation[2048];
va_start(args, _sFmt);
_vsnprintf(strInformation, sizeof(strInformation)-1,_sFmt,args);
FILE * fp = fopen("log.txt", "a");
SYSTEMTIME DateTime;
if(fp == NULL)
{
return;
}
GetLocalTime(&DateTime);
fprintf(fp
, "[%04d-%02d-%02d %02d:%02d:%02d] [File:%d Line:%d] %s /n"
, DateTime.wYear
, DateTime.wMonth
, DateTime.wDay
, DateTime.wHour
, DateTime.wMinute
, DateTime.wSecond
, _sFile
, _iLine
, strInformation
);
fclose(fp);
va_end(args);
}
//使用得例子
int main(int argc, char* argv[])
{
PRINTLOG(LOG_DEBUG, "test log fun [%d]", 20);
return 0;
}
#include<windows.h>
enum E_TraceLevel // ¸ú×Ù¼¶±ð
{
e_DEBUG = 0,
e_TRACE = 1,
e_ERROR = 2,
e_LOG = 3,
e_ALARM = 4,
e_FATAL = 5,
e_ASSERT= 6
};
int gRunLevel = e_DEBUG;
#define LOG_DEBUG e_DEBUG, __FILE__, __LINE__
#define LOG_TRACE e_TRACE, __FILE__, __LINE__
#define LOG_ERROR e_ERROR, __FILE__, __LINE__
#define LOG_LOG e_LOG, __FILE__, __LINE__
#define LOG_ALARM e_ALARM, __FILE__, __LINE__
#define LOG_FATAL e_FATAL, __FILE__, __LINE__
#define PRINTLOG PrintLog
void PrintLog (
IN E_TraceLevel _eTraceLevel
, IN const char *_sFile
, IN const int _iLine
, IN const char *_sFmt
, IN ...)
{
if(gRunLevel > _eTraceLevel) return;
va_list args;
char strInformation[2048];
va_start(args, _sFmt);
_vsnprintf(strInformation, sizeof(strInformation)-1,_sFmt,args);
FILE * fp = fopen("log.txt", "a");
SYSTEMTIME DateTime;
if(fp == NULL)
{
return;
}
GetLocalTime(&DateTime);
fprintf(fp
, "[%04d-%02d-%02d %02d:%02d:%02d] [File:%d Line:%d] %s /n"
, DateTime.wYear
, DateTime.wMonth
, DateTime.wDay
, DateTime.wHour
, DateTime.wMinute
, DateTime.wSecond
, _sFile
, _iLine
, strInformation
);
fclose(fp);
va_end(args);
}
//使用得例子
int main(int argc, char* argv[])
{
PRINTLOG(LOG_DEBUG, "test log fun [%d]", 20);
return 0;
}
相关文章推荐
- 写一个打印日志的函数
- SQL Server一个打印日历的函数
- iOS中打印日志显示系统详细时间,类名,行号,函数名,线程,及打印值
- 写了一个将VxWorks的shell打印输出到指定内存中的接口,可广泛用于CLI下的调试函数显示以及故障自动捕获等功能,稍作修改可以适合其它嵌入式OS
- 函数体中打印日志信息自动附加函数名字的一种实现办法
- 给老白写的一个工具函数 PHP打印匹配行
- 实现一个函数,打印乘法口诀表,口诀表的行数和列数自己指定, 输入9,输出9*9口诀表,输出12,输出12*12的乘法口诀表。
- 写一个函数,实现将tom is cat反向打印成 cat is tom。
- logSvr的日志打印函数
- linux c 定义打印时间/文件名/行/函数日志的可变参数宏定义,如果需要的话可以参考
- Java利用可变参数函数写一个打印方法。
- 打印log4j日志 : 超过一定大小新建日志文件 & 每天新建一个日志文件
- 一个简单用C语言实现的日志函数
- 封装一个打印日期和行号的函数
- 问一个 android eclipse 的logcat 打印的日志 一会就消失 很头疼
- 分享一个日志函数
- 一个很棒的lua函数 用来打印table的内容
- //1.实现一个函数,打印乘法口诀表,口诀表的行数和列数自己指定, //输入9,输出9 * 9口诀表,输出12,输出12 * 12的乘法口诀表。
- 实现一个函数,打印乘法口诀表,口诀表的行数和列数自己指定
- C 实现一个函数打印乘法口诀表 行数和列数自己指定