C++实现简单日志类
来源:互联网 发布:中老年短上衣淘宝网 编辑:程序博客网 时间:2024/04/29 23:13
一个简单的记录日志至文件或者(标准输出及错误文件),不包括系统日志。
直接上代码:
LogFile.h
#ifndef LOG_FILE_INC#define LOG_FILE_INCclass LogFile{public: LogFile() ; virtual ~LogFile() ; static void open( const char *logFName_ ) ; static void close() ; static void puts( const char *str ) ; static void date( const char *prefixStr ) ; static void hostname( const char *prefixStr ) ; static void printf( const char *msg , ... ) ; static FILE *getFD() { return outFD ; } ;private: static char *logFName ; static FILE *outFD ;};#endif
LogFile.cpp
#include "LogFile.h"#include "time.h"#include "unistd.h"FILE *LogFile::outFD = NULL ;char *LogFile::logFName = NULL ;LogFile::LogFile(){}LogFile::~LogFile(){}void LogFile::open( const char *logFName_ ){ if ( outFD != NULL ) error("LogFile::open - outFD != NULL. File already open.") ; if ( (logFName_ == NULL) || (logFName_[0] == '\0') ) return ; if ( strcmp( logFName_ , "stdout" ) == 0 ) outFD = stdout ; else if ( strcmp( logFName_ , "stderr" ) == 0 ) outFD = stderr ; else { logFName = new char[strlen(logFName_)+1] ; strcpy( logFName , logFName_ ) ; if ( (outFD = fopen( logFName , "wb" )) == NULL ) error("LogFile::init - error opening log file: %s" , logFName) ; }}void LogFile::close(){ if ( (outFD != NULL) && (outFD != stdout) && (outFD != stderr) ) fclose( outFD ) ; outFD = NULL ; delete [] logFName ; logFName = NULL ;}void LogFile::puts( const char *str ){ if ( outFD == NULL ) return ; if ( (str == NULL) || (str[0] == '\0') ) error("LogFile::puts - str undefined") ; fputs( str , outFD ) ; fflush( outFD ) ;}void LogFile::date( const char *prefixStr ){ if ( outFD == NULL ) return ; if ( prefixStr != NULL ) { fprintf( outFD , "%s " , prefixStr ) ; } time_t t = time(NULL) ; fputs( ctime( &t ) , outFD ) ; fflush( outFD ) ;}void LogFile::hostname( const char *prefixStr ){ if ( outFD == NULL ) return ; if ( prefixStr != NULL ) { fprintf( outFD , "%s " , prefixStr ) ; } char str[100] ; if ( gethostname( str , 100 ) < 0 ) { fprintf( outFD , "UNKNOWN HOST\n" ) ; } else { fprintf( outFD , "%s\n" , str ) ; } fflush( outFD ) ;}void LogFile::printf( const char *msg , ... ){ if ( outFD == NULL ) return ; va_list args ; va_start( args , msg ) ; vfprintf( outFD , msg , args ) ; va_end(args); fflush( outFD ) ;}
- c简单实现日志记录
- C语言实现简单的日志封装
- C++实现简单日志类
- 一个简单用C语言实现的日志函数
- 一个简单用C语言实现的日志函数
- C语言简单实现日志功能的的题目
- C语言实现简单的分级别写日志程序
- Linux下简单的日志功能实现(C语言)
- Windows下一个简单的日志系统的C代码实现
- [C/C++]简单的C++日志操作类
- 日志处理—简单实现
- Windows服务 日志简单实现
- 简单的日志文件操作类 (C#)
- C++实现一个简单的异常日志记录类
- Java之动态代理类实现日志简单实例
- java简单实现一个日志工具类(用于服务器调试)
- 一个同步日志系统的简单实现 log for c (linux 平台)
- Linux下一个简单的日志系统的设计及其C代码实现
- Linux系统磁盘分区管理
- 用 DATEDIF函数 计算两个日期之间的年\月\日间隔数
- Linux内核编码规范
- 如果每15分钟提交一次数据,则一天中应有96条数据。如有镂空,则补全没有提交的数据时间
- VC 动态创建菜单
- C++实现简单日志类
- iPhone Performance Killers
- hdu 1052 Tian Ji -- The Horse Racing
- spring 分布式事务
- JavaScript 操作 Cookie
- 卸载oracle数据库
- __attribute__ 学习笔记
- 乔布斯传
- Linux系统磁盘配额详解