linux c语言写log日志,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
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值