Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1021730
  • 博文数量: 297
  • 博客积分: 11721
  • 博客等级: 上将
  • 技术积分: 3431
  • 用 户 组: 普通用户
  • 注册时间: 2009-05-25 10:21
文章分类

全部博文(297)

文章存档

2016年(9)

2011年(71)

2010年(137)

2009年(80)

分类: C/C++

2010-04-02 16:21:41

log.h文件:

#include
#include
#include
#include
#include
#include

FILE *open_log(char *filename);
void write_log( FILE *filep, const char *fmt,...);
int close_log(FILE *fp);


log.c文件:

/*Function:获取当前系统时间
 * Input: iosec 保存当前时间的数字格式
 * Output: curtime 当前时间存放地址
 * Return:当前时间的字符串
 */
const char *getcurdate(char *curtime)
{
    int TIME_LEN = 50;
    time_t rawtime;
    struct tm *tm_local;

    rawtime = time((time_t *)NULL);

    tm_local = localtime(&rawtime);

    memset(curtime, '\0', sizeof(curtime));
    sprintf(curtime, "%4d-%02d-%02d %02d:%02d:%02d ", 1900+tm_local->tm_year, 1+tm_local->tm_mon, tm_local->tm_mday, tm_local->tm_hour, tm_local->tm_min, tm_local->tm_sec);

    return curtime;
}

/*Function:打开日志文件
 * Input: filename 日志文件名
 * Return:日志文件指针
 */
FILE *open_log(char *filename)
{
    FILE *fp;
    if((fp = fopen(filename,"a+")) == NULL)
    {
        perror("fopen");
        return NULL;
    }

    return fp;
}

/* Function:写日志
 * Input:inLogInfo--日志对象, fmt--日志内容的格式串
 * Output:
 * Return:
 */
void write_log( FILE *fp, const char *fmt,...)
{
    int LOG_LEN = 256, TIME_LEN = 50;
    char buffer[LOG_LEN], curtime[TIME_LEN];

    memset(buffer,'\0', sizeof(buffer));
    memset(curtime,'\0', sizeof(curtime));

    getcurdate(curtime);

    strncpy(buffer, curtime, strlen(curtime));

    va_list ap;
    va_start(ap, fmt);
    vsnprintf( buffer+strlen(curtime), LOG_LEN-1, fmt, ap);
    va_end(ap);

    printf("%s", buffer);
   
    if(fputs(buffer,fp) == EOF)
        perror("fputs");
}

/*Function:打开日志文件
 * Input: filename 日志文件名
 * Return:日志文件指针
 */
int close_log(FILE *fp)
{
    if(fclose(fp) == EOF)
    {
        perror("fclose");
        return -1;
    }

    return 0;
}

阅读(744) | 评论(0) | 转发(0) |
0

上一篇:vim配置文件及种类

下一篇:tr命令用法

给主人留下些什么吧!~~