linux c打印日志文件,linux c下log输出代码模板示例代码

前言

本文主要介绍了关于linux c下log输出代码模板的相关内容,分享出来供大家参考学习,下面话不多说了,来一起看看详细的介绍吧

模板

模本分为两个文件:log.c和log.h.

log.c

/** log.c **/

#include

#include "log.h"

// log文件路径

#define filepath "./ps_com_log.log"

//设定时间

static char * settime(char * time_s){

time_t timer=time(NULL);

strftime(time_s, 20, "%Y-%m-%d %H:%M:%S",localtime(&timer));

return time_s;

}

/*

*打印

* */

static int PrintfLog(char * logText, char * string){

FILE * fd = NULL;

char s[1024];

char tmp[256];

//使用追加方式打开文件

fd = fopen(filepath,"a+");

if(fd == NULL){

return -1;

}

memset(s, 0, sizeof(s));

memset(tmp, 0,sizeof(tmp));

sprintf(tmp, "*****[pid=%d]:[", getpid());

strcpy(s, tmp);

memset(tmp, 0,sizeof(tmp));

settime(tmp);

strcat(s, tmp);

strcat(s, "]*****");

fprintf(fd, "%s", s);

fprintf(fd, "*[%s]*****:\n",logText);

fprintf(fd, "%s\n",string);

fclose(fd);

}

/*

*日志写入

* */

void LogWrite(char *logText,char *string)

{

//[为支持多线程需要加锁] pthread_mutex_lock(&mutex_log); //lock.

//打印日志信息

PrintfLog(logText, string);

//[为支持多线程需要加锁] pthread_mutex_unlock(&mutex_log); //unlock.

}

log.h

#ifndef __LOG_H__

#define __LOG_H__

#include

#include

#include

void LogWrite(char * logText,char *string);

#endif /* __LOG_H__ */

测试文件

既然有了log输出功能,下面就简单测试一下:

#include "stdio.h"

#include "log.h"

int main(int argv,char**argc){

printf("test\n");

LogWrite("INFO","Hello World!");

LogWrite("error","H.e.l.l.o W.o.r.l.d!");

LogWrite("mint","H e l l o W o r l d!");

LogWrite("iout","Hallo World!");

return 0;

}

以上代码很简单,不在过多解释。

运行结果:

*****[pid=15971]:[2018-12-05 14:24:21]******[INFO]*****:

Hello World!

*****[pid=15971]:[2018-12-05 14:24:21]******[error]*****:

H.e.l.l.o W.o.r.l.d!

*****[pid=15971]:[2018-12-05 14:24:21]******[mint]*****:

H e l l o W o r l d!

*****[pid=15971]:[2018-12-05 14:24:21]******[iout]*****:

Hallo World!

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,如果有疑问大家可以留言交流,谢谢大家对脚本之家的支持。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值