Linux下写自己应用程序的log文件

5867阅读 9评论2012-05-02 乐百事2
分类:C/C++

/****************************************************************
函数说明 :获取当前系统时间
入口参数 :
返回类型 :fmt   0-返回:yyyy-mm-dd hh24:mi:ss
       1-返回:yyyy-mm-dd
       2-返回:hh24:mi:ss
初始时间 :2012-5-2 Lebaishi
修改记录 :
用途功能 :获取当前系统时间,用做写Log日志
****************************************************************/
int getTime(char *out, int fmt)
{
if(out == NULL)
{
    return -1;
}
time_t t;
struct tm *tp;
t = time(NULL);

tp = localtime(&t);
if(fmt == 0)
{
    sprintf(out, "%2.2d-%2.2d-%2.2d %2.2d:%2.2d:%2.2d", tp->tm_year+2000, tp->tm_mon+1, tp->tm_mday, tp->tm_hour, tp->tm_min, tp->tm_sec);
}
else if(fmt == 1)
{
    sprintf(out, "%2.2d-%2.2d-%2.2d", tp->tm_year+1900, tp->tm_mon+1, tp->tm_mday);
}
else if(fmt == 2)
{
    sprintf(out, "%2.2d:%2.2d:%2.2d", tp->tm_hour, tp->tm_min, tp->tm_sec);
}
return 0;
}



/****************************************************************
函数说明 :写入Log  日志
入口参数 :bLog  表明是否为日志文件,place 代码位置
返回类型 :
初始时间 :2012-5-2 Lebaishi
修改记录 :
用途功能 :如果是日志文件,将会在str前加上当前时间(格式如:2011-04-12 12:10:20)
****************************************************************/
int write_errlog(Uchar bLog,char *str,char *place)
{
    char curTime[100] = {0,};
    int ret = -1;

    memset(curTime,0,100);
    if(NULL == file_log || NULL == str) //file_log 是FILE *file_log 打开的文件描述符
    {
return -1;
    }
    if(0 < bLog) // 获取当前系统时间
    {
        getTime(curTime, 0);
        ret = fprintf(file_log, "[%s] : %s, the err is in %s\n", curTime, str, place);
    }
    else
    {
    ret = fprintf(file_log, "%s, the err is in %s\n", str, place);
    }
    if(ret >= 0)
    {
    fflush(file_log);
        return 0;
    }
    else
    {
return -1;
    }
}

上一篇:Linux下消息队列的简单函数介绍
下一篇:Linux下vi编辑器的使用

文章评论