前言

本文主要介绍了关于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!

总结

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

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

  1. Linux系统.xsesion日志文件,linux系统日志

    ##日志记录系统每天发生的各种各样的事情,比如监控系统的状况,排查系统的故障等.你可以通过日志来检查错误发生的原因,或者受到***时留下的痕迹.日志的主要功能是审计和监测,还有实时的监测系统状态,监测 ...

  2. linux定时任务打印日志,Centos7(linux)使用crond服务定时执行js脚本并将脚本的输出内容记录日志文件的简单应用...

    - ## 在Centos7.8上使用crond服务定时执行js脚本并将脚本执行的输出记录日志 1. 安装wget 2. wget https://npm.taobao.org/mirrors/node ...

  3. linux 启动 不打印日志文件,Linux nohup不输出日志文件的方法

    最近在Linux上部署视频流推送应用时,由于网络不稳定等原因程序会不断的输出错误信息,结果导致程序运行一天下来日志文件直接占满磁盘,解决方法就是不再输出日志文件,命令如下: 只输出错误信息到日志文件: ...

  4. linux开关机日志文件,Linux开关机命令(shutdown,reboot,halt,init)

    命令简介 shutdown,poweroff,reboot,halt,init都可以进行关机,大致用法. /sbin/halt [-n] [-w] [-d] [-f] [-i] [-p] [-h] / ...

  5. 文件服务器 s3,AWS S3日志文件通过服务器上传到elk(示例代码)

    通过elk查看s3产生的大量日志 首先理清思路 首先从s3上用s3cmd命令将logs同步下来 再将日志写到文件 再通过elk展示出来 一.安装s3cmd命令 S3cmd工具的安装与简单使用: 参考文 ...

  6. 如何查看linux系统下的各种日志文件 linux 系统日志的分析大全

    如何查看linux系统下的各种日志文件 linux 系统日志的分析大全 日志分类: 1. 连接时间的日志 连接时间日志一般由/var/log/wtmp和/var/run/utmp这两个文件记录,不过这 ...

  7. 【引用】Linux常用的日志文件解说及常用系统命令

    一.前言 想成功地管理任何系统的关键之一,是要知道系统中正在发生什么事.Linux 中提供了异常日志,并且日志的细节是可配置的,都以明文形式存储,所以用户不需要特殊的工具就可以搜索和阅读它们.还可以编 ...

  8. Linux中查看日志文件的正确姿势,求你别tail走天下了!

    作为一个后端开发工程师,在Linux中查看查看文件内容是基本操作了.尤其是通常要分析日志文件排查问题,那么我们应该如何正确打开日志文件呢?对于我这种小菜鸡来说,第一反应就是 cat,tail,vi(或 ...

  9. Linux 实时查看日志文件的 4 种方法

    来源 | GOPS 全球运维大会 2021 · 上海站 在 Linux 下如何才能实时查看日志内容呢?有很多工具可以帮助我们在文件持续修改的同时输出文件内容,最常用的莫过于 tail 命令了. 1. ...

最新文章

  1. 94年出生,6篇SCI,一作发Science,你还不放下手上玩的泥巴
  2. 搜索和其他机器学习问题有什么不同?
  3. 网站优化——网站索引量骤降从网站优化找原因
  4. Python 基础 - Day 1 Assignment - Login 模拟登陆
  5. C语言 | C语言中main函数:int main( int argc, char* argv[] ) 中arg和argv参数的解析及调试
  6. mysql 存储时间 时间戳_具体场景下MySQL中用“时间戳”存储时间的问题
  7. C++ 网络多线程编程
  8. WorkerMan源码分析 - 实现最简单的原型
  9. matlab2013a文件安装密钥,Matlab2013a软件安装教程
  10. Hadoop权威指南(第三版)笔记——MapReduce
  11. vi编辑器替换字符串命令
  12. 汇编语言:将ASCⅡ码表示的十进制数转换为二进制数/十六进制数
  13. LaTeX:斜线表头的表格制作
  14. 接连两天,持续霸榜 GitHub,这款 WiFi 开源神器我爱了!
  15. H5微信授权登录 H5支付 外部浏览器微信支付 前端一个函数搞
  16. SD卡和文件系统那些事儿
  17. 元宇宙开发者的乐园 解析元宇宙协议Caduceus生态价值
  18. 电信ZNHG60光猫信息虚标
  19. sso单点登录与Jsonp
  20. 一文带你了解Kafka【一看就懂】

热门文章

  1. python 判断线程状态_Python线程指南
  2. FatFs 之一 R0.13c版源码目录文件、函数、全配置项详解及移植说明
  3. cfree运行程序错误的原因_ARM Cortex-M 系列 MCU错误代码自动追踪库的使用分享
  4. gdb调试时查看内存
  5. 理解:TI C6000 数据存储处理与性能优化
  6. WebRTC / Jitsi / 多人视频通讯常用架构 Mesh / MCU / SFU
  7. 数据结构与算法 / 二叉搜索树(Binary Search Tree)
  8. c++ 数组置0_0基础学习C语言第七章:数组(1)
  9. Linux虚拟内存映射分析以及CMA测试 - 以SSD202为例
  10. MT7688 坑爹的 SPI Master 半双工全双工问题