linux c log 日志接口
#define SIZE_16M 16777216 //1024*1024*16
#define LOG_FILE_PATH "./mylog.txt" //日志文件路径
#define LOG_PARAMS LOG_FILE_PATH,__FILE__,__func__,__LINE__ //日志文件路径 调用函数所在文件 调用函数名 调用debugInfo时所在行号
//显示调用debugInfo接口的函数所在的文件名、函数名、行号
int debugInfo(char *pLogPath, char *pFile, const char *pFuncName, int iLineNumb, char *fmt, ...); //调用举例: debuInfo(LOG_PARAMS, “some string %s, some int %d and so on", "hello log", 101); //日志的编号
int giInfoNumb = ;
int debugInfo(char *pLogPath, char *pFile, const char *pFuncName, int iLineNumb, char *fmt, ...)
{
if(NULL == pLogPath ||'\0' == pLogPath[] || NULL == pFile || '\0' == pFile[] || NULL == pFuncName ||'\0' == pFuncName[])
return VS_ERR;
//判断文件大小是否清空该文件,每1000次写日志里检测1次文件大小
if( == (giInfoNumb % ))
{
struct stat fileStat;
if( == stat(pLogPath, &fileStat) && fileStat.st_size > SIZE_16M)
remove(pLogPath);
}
//打开文件,写入日志
FILE *pLogHandle = fopen(pLogPath, "a+");
if(NULL == pLogHandle)
return VS_ERR;
//写入日期、函数信息
time_t timeSecs = time(NULL);
struct tm *timeInfo = localtime(&timeSecs);
char acTitle[STR_LEN_2048] = { };
snprintf(acTitle, sizeof(acTitle), "[%04d] [%d%02d%02d/%02d:%02d:%02d] [%s] [%s:%d]\n", giInfoNumb++,
timeInfo->tm_year + , timeInfo->tm_mon + , timeInfo->tm_mday,
timeInfo->tm_hour, timeInfo->tm_min, timeInfo->tm_sec, pFile, pFuncName, iLineNumb);
int iLen = strlen(acTitle);
fwrite(acTitle, iLen, , pLogHandle);
//写入日志
fwrite("\t\t\t", , , pLogHandle);
memset(acTitle, , sizeof(acTitle));
va_list args;
va_start(args, fmt);
vsnprintf(acTitle, sizeof(acTitle), fmt, args);
va_end(args);
iLen = strlen(acTitle);
fwrite(acTitle, iLen, , pLogHandle);
fwrite("\n", , , pLogHandle);
//关闭日志文件
fclose(pLogHandle);
return VS_OK;
}
linux c log 日志接口的更多相关文章
- Linux操作系统log日志日志分别指什么
Linux操作系统log日志日志分别指什么 2019-04-20 20:41:05 一.一般的日志 /var/log/messages —包括整体系统信息,其中也包含系统启动期间的日志.此外,m ...
- Linux**系统实现log日志自动清理
Linux系统实现log日志自动清理 *:first-child { margin-top: 0 !important; } body>*:last-child { margin-bottom: ...
- Linux系统的LOG日志文件及入侵后日志的清除
UNIX网管员主要是靠系统的LOG,来获得入侵的痕迹.当然也有第三方工具记录入侵系统的 痕迹,UNIX系统存放LOG文件,普通位置如下: /usr/adm - 早期版本的UNIX/var/adm - ...
- linux log日志解析
linux log日志解析 其实,可以说成是监控系统的记录,系统一举一动基本会记录下来.这样由于信息非常全面很重要,通常只有 root 可以进行视察!通过登录文件(日志文件)可以根据屏幕上面的错误 ...
- Linux /var/log下各种日志文件
Linux /var/log下各种日志文件:
- linux 如何截取一段时间内log日志
截取一段时间内的log日志可以使用sed命令对log文件进行抽取操作: 1,sed查看某时间段到现在的系统日志:sed -n '/May 20 17/,$p' /var/log/messages | ...
- 模块(二)——简单的log日志
简单的log日志 鉴于任何功能模块或系统在调试时都需要日志打印,这里随便写了一下,作为以后代码调试之用,只实现了不同等级的日志输出功能,其他的调试功能以后再行添加:使用方法简单,只需要在头文件里事先按 ...
- 全栈必备Log日志
Log日志,不论对开发者自身,还是对软件系统乃至产品服务都是非常重要的事情.每个开发者都接触过日志,以至于每个人对日志的了解都会有所不同. 什么是日志 日志是什么呢?老码农看来,日志是带有明确时间标记 ...
- Linux系统日志及日志分析
Linux系统日志及日志分析 Linux系统拥有非常灵活和强大的日志功能,可以保存几乎所有的操作记录,并可以从中检索出我们需要的信息. 大部分Linux发行版默认的日志守护进程为 syslog,位 ...
随机推荐
- decal in unity
// Upgrade NOTE: commented out 'float4x4 _CameraToWorld', a built-in variable// Upgrade NOTE: replac ...
- 2018年3月python传智播客人工智能基础就业班全套视频教程
2018年3月python传智播客人工智能基础就业班全套视频教程 有需要的可以留言留下邮箱.
- Python数据结构与算法(几种排序)
数据结构与算法(Python) 冒泡排序 冒泡排序(英语:Bubble Sort)是一种简单的排序算法.它重复地遍历要排序的数列,一次比较两个元素,如果他们的顺序错误就把他们交换过来.遍历数列的工作是 ...
- app store 注册账号生成证书上传app完整的教程
app store为开发者提供四种类型的申请: 个人ios开发者计划$99/年 公司ios开发者计划$99/年 企业ios开发者计划$299/年 高校ios开发者计划免费 在这里主要介绍一下公司ios ...
- Spring框架学习(5)spring整合struts2
内容源自:spring整合struts2 一.spring框架对struts等表现层框架的整合原理 : 使用spring的ioc容器管理struts中用于处理请求的Action 将Action配置成i ...
- 教你用 google-drive-ocamlfuse 在 Linux 上挂载 Google Drive
如果你在找一个方便的方式在 Linux 机器上挂载你的 Google Drive 文件夹, Jack Wallen 将教你怎么使用 google-drive-ocamlfuse 来挂载 Google ...
- Jconsole
Jconsole 1.1 简介以及连接 JConsole是一个基于JMX的GUI工具,用于连接正在运行的JVM,它是Java自带的简单性能监控工具.下面以对tomcat的监控为例,带领大家熟悉Jcon ...
- java中的序列化和反序列化学习笔记
须要序列化的Person类: package cn.itcast_07; import java.io.Serializable; /* * NotSerializableException:未序列化 ...
- UML类图介绍(转载)
UML类图详细介绍 类图主要描述程序对象以及他们之间的关系.一般来说,类.接口.抽象类这些程序对象的区别很容易,但是他们之间六种关系以前总是理解不够深刻,这次进行了一次复习,顺便写成博文以便加深理 ...
- 直接插入排序、折半插入排序、shell插入排序
直接插入排序: 折半插入排序: shell插入排序: