码迷,mamicode.com
首页 > 其他好文 > 详细

写入简单的日志log

时间:2019-11-27 12:15:39      阅读:85      评论:0      收藏:0      [点我收藏+]

标签:current   div   sys   日志log   include   text   sizeof   strcat   %s   

log.c:

#define _GNU_SOURCE
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <stdarg.h>
#include <time.h>
#include <unistd.h>

#include "
log.h" void logmessage(char *logheader, char *fmt, ...) { va_list args; char buf[1024]; va_start(args, fmt); vsnprintf(buf, sizeof(buf) - 1, fmt, args); openlog(logheader, 0, 0); syslog(0, buf); closelog(); va_end(args); return; } void logcurrent(const char *func, int line, char *fmt, ...) { va_list args; FILE *fp = NULL; char tmp[128]; char buf[1024]; char log_message[1024]; char *path; char *time_s; time_t t; time_s = tmp; t = time(NULL); time_s = ctime(&t); time_s[strlen(time_s) - 1] = ; // remove ‘\n‘ va_start(args, fmt); vsnprintf(log_message, sizeof(log_message) - 1, fmt, args); printf("log_message : %s\n", log_message); snprintf(buf, sizeof(buf) - 1, "%s %s[%d] %s", time_s, func, line, log_message); printf("buf : %s\n", buf); path = get_current_dir_name(); strcat(path, "/log.text"); fp = fopen(path, "a+"); if (fp == NULL) { perror("fopen"); return; } if (fwrite(buf, strlen(buf), 1, fp) == 0) { perror("fwrite"); return; } if (fp) { fclose(fp); } va_end(args); return; } int main(void) { tcp_log("%s", "1234567890z"); logcurrent(__func__, __LINE__, "abc\n"); }

 

log.h:

#ifndef __LOG_H__
#define __LOG_H__

#ifndef SYS_LOG
#define tcp_log(fmt, args...) logcurrent(__func__, __LINE__, fmt, ## args)
#else
#define tcp_log(fmt, args...) logmessage(log_header, fmt, ## args)
#endif
#endif

 

Makefile:

CC = gcc
TARGET = log-test
SOURCE = log.c

all: clean
    $(CC) $(SOURCE) -o $(TARGET)

clean:
    rm -rf $(TARGET)

 

写入简单的日志log

标签:current   div   sys   日志log   include   text   sizeof   strcat   %s   

原文地址:https://www.cnblogs.com/coolYuan/p/11940999.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!