简单实用的日志系统,打开文件方式后面用 w时,每次系统运行会清空以前的,部分实现在前一篇文掌的cofig里面
log.h
/*
* File: log.h:日志系统的头文件
* Author: netpet
* Flower net server
* 本程序是为一体化web server产品专用设计,具有部分代码为具体产品优化而不代表普遍通用性的特性
* 程序在linux 2.46下调试通过,编辑工具netbeans 6.1 for c
* 联系方式:Email:netpetboy@163.com QQ:51977431
* Created on 2008年5月26日, 下午4:18
*/
#include "config.h"
#ifndef _LOG_H
#define _LOG_H
#ifdef __cplusplus
extern "C" {
#endif
#define Error(fmt, ...) \
vlog_debug(config->log.log_log, "[%s %d] 错误: "fmt, __FILE__, __LINE__, __VA_ARGS__)
#define Warning(fmt, ...) \
vlog_debug(config->log.log_log, "[%s %d] 警告: "fmt, __FILE__, __LINE__, __VA_ARGS__)
#define Record(fmt, ...) \
vlog_debug(config->log.access_log, "[%s %d] 记录: "fmt, __FILE__, __LINE__, __VA_ARGS__)
#define Debug(fmt, ...) \
log_debug(__FILE__, __LINE__, fmt, __VA_ARGS__)
extern void log_debug(const char *file, const int line, const char *format,...);
extern void vlog_debug(FILE *file, const char *format,...);
#ifdef __cplusplus
}
#endif
#endif /* _LOG_H */
log.c
/*
* File: log.c:日志系统的实现
* Author: netpet
* Flower net server
* 本程序是为一体化web server产品专用设计,具有部分代码为具体产品优化而不代表普遍通用性的特性
* 程序在linux 2.46下调试通过,编辑工具netbeans 6.1 for c
* 联系方式:Email:netpetboy@163.com QQ:51977431
* Created on 2008年5月26日, 下午4:18
*/
#include <stdio.h>
#include <stdarg.h>
#include <stdlib.h>
#include <time.h>
#include <assert.h>
#include <errno.h>
#include <string.h>
#include "config.h"
/*
*功能:调试输出函数
*/
void log_debug(const char *file, const int line, const char *format,...)
{
if(!config->log.DebugModel)
return;
char new_format[2048];
va_list va;
va_start(va, format);
snprintf(new_format, 8191 , "\n[%s] | [%s %d] %s",ServerTime(), file, line, format);
if(vfprintf(config->log.debug_log, new_format, va) < 0)
fprintf(stderr, "警告. [%s %d] %s\n", __FILE__, __LINE__, strerror(errno));
va_end(va);
}
/*
*功能:警告或者错误输出函数
*
*/
void vlog_debug(FILE *file, const char *format,...)
{
if(!file)
return;
static char new_format[2048];
va_list va;
va_start(va, format);
snprintf(new_format,8191 , "\n[%s] | %s",ServerTime(), format);
if(vfprintf(file, new_format, va) < 0)
fprintf(stderr, "警告 [%s %d] %s\n", __FILE__, __LINE__, strerror(errno));
va_end(va);
}
分享到:
相关推荐
Linux C 实现日志打印功能
记录日志,方便linux开发时调试系统。 linux内核内容相关
纯c语言实现的记录日志代码,功能相当强大,代码相当灵活,也可以移植到window系统上。
log日志log日志log日志log日志log日志log日志log日志log日志log日志log日志log日志log日志
linux系统日志解析,系统日志一般都存在/var/log下 常用的系统日志如下: 核心启动日志:/var/log/dmesg 系统报错日志:/var/log/messages 邮件系统日志:/var/log/maillog FTP系统日志:/var/log/xferlog 安全信息和系统...
7.日志分为3个文件,debug.log保存调试日志信息,normal.log保存普通日志信息,error.log保存错误日志信息 8.日志安全性:日志文件达到一定容量后(目前设置为100M)会把原日志文件备份为.bak后缀的日志文件, 并...
log4cplus是C++编写的开源的日志系统,功能非常全面,用到自己开发的工程中会比较专业的,:),本文介绍了log4cplus基本概念,以及如何安装,配置。 ### 简介 ### log4cplus是C++编写的开源的日志系统,前身是java...
linux系统下打印日志到文件中,包含当前时间,不限定日志内容和参数。用来调试软件,查看方便日志信息。
spdlog1.8版本,小小的封装了一下,c++,qt均试用,可以根据不的d等级输出不同的文件以及文件夹,文件可直接解压后添加到项目使用,,可直接使用宏输出,非常的方便,节约了开发时间,适用有一定基础编程的研发人员
LINUX下程序日志文件的读取与写入。直接调用即可。
主要介绍了linux系统中c++写日志文件功能,简化了glog,只保留了写日志文件的功能,只是改写了linux版本,需要的朋友可以参考下
linux log日志查看【syslogd logrotate】.zip
对Linux下netfilter/iptables中log日志格式探讨.pdf
git log日志 git log日志git log日志git log日志git log日志
Linux Tomcat下使用Log4j接管catalina.out 日志文件生成方式,按天分割,解决catalina.out日志文件过大问题 1、将log4j-1.2.17.jar、tomcat-juli-adapters.jar两个jar包和log4j.properties文件拷贝到 Tomcat 的 lib...
linux日志采集程序,可以实现对linux主机的系统日志进行采集分析
一个简单的写log日志的c++代码,可以将日志写入文件用来记录程序调试信息。
Linux tomcat下catalina.out日志文件分割 前言: tomcat默认使用Java.util.logging记录日志,默认只记录tomcat的日志,不记录应用的日志。tomcat支持采用log4j进行日志记录,配置方法如下: 1.更新最新的tomcat_juli...
mongodb-log 是一个基于MongoDB的Python日志系统。 MongoDB 的 Capped Collection是一个天生的日志系统,MongoDB自己的oplog就是用它来存储的,Capped Collection的特点是可以指定Collection的大小,当记录总大小...
iis.log文件,一个 log日志文件 .log文件供下载开发测试