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,位 ...
随机推荐
- python微信公众号开发学习记录
网上有很多微信公众号的开发教程,但是都是好几年前的了,而且很多都是抄袭其他人的,内容几乎一模一样.真的无语了.只好自己总结一下开发的一些简单流程. 一先去注册个微信公众号,这个就不详细说了, 二登录后 ...
- ArcGIS Server 10中的切图/缓存机制深入【转】
http://blog.newnaw.com/?p=789 两年前我写过一篇关于ArcGIS地图切图/缓存原理的文章,<ArcGIS Server的切图原理深入>,里面以tiling sc ...
- JS夯实基础:Javascript 变态题解析 (下)
function sidEffecting(ary) { ary[] = ary[]; } function bar(a,b,c) { c = sidEffecting(arguments); ret ...
- MySQL : ERROR 1042 (HY000): Can't get hostname for your address
摘自: http://www.siutung.org/post/506/ 使用Navicat for MySQL连接远程的MySQL服务器,却提示:Can't get hostname for you ...
- [Python爬虫] 之二十九:Selenium +phantomjs 利用 pyquery抓取节目信息信息
一.介绍 本例子用Selenium +phantomjs爬取节目(http://tv.cctv.com/epg/index.shtml?date=2018-03-25)的信息 二.网站信息 三.数据抓 ...
- SVN配置常见错误
1.svnserve.conf:12: Option expected 为什么会出现这个错误呢,就是因为subversion读取配置文件svnserve.conf时,无法识别有前置空格的配置文件,如 ...
- CSS学习(九)-CSS背景
一.理论: 1.background-break a.bounding-box 背景图像在整个内联元素中进行平铺 b.each-box 背景图像在行内中进行平铺 c.continuous 下一行的背 ...
- ThinkPHP 3.2 中获取所有函数方法名,以及注释,完整可运行
<?php namespace Home\Controller; use Common\Controller\BaseController; class AuthController exten ...
- visio 画图工具
1.线条 [设计] --- [页面设置]----打开 对话框 [布局与排列]-----[排列] ---- [样式] --- [直 2.word中插入viso 插入→对象→visio
- Excle中range的一些用法
以下是一些range的简单用法 Sub aa() '-=============================================== '给B列设置填充颜色为黄色 Range(" ...