5 Star 1 Fork 1

bian / fbv

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
该仓库未声明开源许可证文件(LICENSE),使用请关注具体项目描述及其代码上游依赖。
克隆/下载
log.c 2.00 KB
一键复制 编辑 原始数据 按行查看 历史
jqc 提交于 2014-01-09 18:14 . add log src
#include <stdio.h>
#include <string.h>
#include <unistd.h>
#include <errno.h>
#include <time.h>
#include <stdarg.h>
#include "log.h"
#define DEBUG 1
void getsysdate(char *date)
{
// yyyy-mm-dd
time_t now;
struct tm *ntime;
if (-1 == time(&now)) {
snprintf(date, LEN_DATE - 1, "date-unknown");
return;
}
ntime = localtime(&now);
snprintf(date, LEN_DATE - 1, "%d-%d-%d", ntime->tm_year + 1900, ntime->tm_mon + 1,
ntime->tm_mday);
}
void getsystime(char *systime)
{
// hh:mm:ss
time_t now;
struct tm *ntime;
if (-1 == time(&now)) {
snprintf(systime, LEN_TIME - 1, "time-unknown");
return;
}
ntime = localtime(&now);
snprintf(systime, LEN_TIME - 1, "%d:%d:%d", ntime->tm_hour, ntime->tm_min, ntime->tm_sec);
}
int mkdirs(const char *fpath)
{
printf("function:%s\n", __func__);
}
int log2file(const char *fpath, const char *format, va_list args)
{
FILE *fp = NULL;
char str_date[LEN_DATE] = { '\0' };
char absol_fpath[128] = { '\0' };
getsysdate(str_date);
if (access(fpath, F_OK) != 0) {
// make all dirs-------------------tbc
if (-1 == mkdirs(fpath)) {
Log(LOG_DEBUG, "[DEBUG] function:%s --- %s\n", __func__, strerror(errno));
return -1;
}
}
snprintf(absol_fpath, LEN_PATH - 1, "%s%s.log", fpath, str_date);
Log(LOG_DEBUG, "[DEBUG] function:%s --- absol_fpath=%s\n", __func__, absol_fpath);
if (NULL == (fp = fopen(absol_fpath, "a+"))) {
Log(LOG_DEBUG, "[DEBUG] function:%s --- %s", __func__, strerror(errno));
return -1;
}
vfprintf(fp, format, args);
fflush(fp);
fclose(fp);
return 0;
}
int Log(int level, const char *format, ...)
{
va_list args;
va_start(args, format);
switch (level) {
case LOG_INFO:
case LOG_WARNING:
case LOG_ERROR: {
log2file(FLOG_PATH, format, args);
break;
}
case LOG_DEBUG: {
fprintf(stdout, "\033[0;32m"); // color green for debug
vfprintf(stdout, format, args);
fprintf(stdout, "\033[0m");
break;
}
default: {
printf("[DEBUG] function:%s --- log level=%d", __func__, level);
break;
}
}
return 0;
}
C
1
https://gitee.com/2013/fbv.git
git@gitee.com:2013/fbv.git
2013
fbv
fbv
master

搜索帮助