c语言输出log到文件路径,C/C++知识点之打印并输出 log/日志到文件(C++)

本文主要向大家介绍了 C/C++知识点之打印并输出 log/日志到文件(C++),通过具体的内容向大家展示,希望对大家学习C/C++知识点有所帮助。#include

#define MAX_LEN 1024

bool debug_mode;

// 使用方法同 printf

void lprintf(const char *fmt, ...) {

static bool print_time = true; //是否要打印时间: 当 debug_mode 为真,且上一次是换行符结尾。

char message[MAX_LEN];

// 当前时间.

time_t timer = time(NULL);

strftime(message, 23, "[%Y-%m-%d %H:%M:%S] ", localtime(&timer));

va_list args;

va_start(args, fmt);

vsnprintf (message + 22, MAX_LEN - 22, fmt, args);

va_end(args);

if (debug_mode) {

printf("%s", message + 22);

}

int fd = open(LOG_FILE, O_WRONLY | O_CREAT | O_APPEND, S_IRUSR | S_IWUSR);

if (fd == -1) {

perror("open (log)");

} else {

if (print_time == false) {

if (write(fd, message + 22, strlen(message + 22)) == -1)

perror("lprintf");

} else {

if (write(fd, message, strlen(message)) == -1)

perror("lprintf");

}

print_time = (message[strlen(message) - 1] == '\n');

close(fd);

}

}

本文由职坐标整理并发布,希望对同学们有所帮助。了解更多详情请关注职坐标编程语言C/C+频道!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值