log4cplus使用帮助文档基础详解
来源:互联网 发布:淘宝一般星期几流量高 编辑:程序博客网 时间:2024/06/10 06:06
一个简单的记录日志至文件或者(标准输出及错误文件),不包括系统日志。
直接上代码:
LogFile.h
- #ifndef LOG_FILE_INC
- #define LOG_FILE_INC
- class 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 ) ;
- }
- log4cplus使用帮助文档基础详解
- log4cplus使用帮助文档基础详解
- log4cplus使用帮助文档基础详解
- log4cplus使用帮助文档基础详解
- SVN使用帮助文档
- mysql 帮助文档使用
- Xcode帮助文档使用
- QT5帮助文档使用
- log4cplus使用
- log4cplus使用
- log4cplus使用
- log4cplus使用
- Log4cplus使用
- EyesBaby1.0使用帮助文档
- XCode帮助文档离线使用
- man/vim使用帮助文档
- GTK帮助文档的使用
- GTK帮助文档的使用
- 判断字符串是否是回文
- C++使用Json作为数据包装格式的通信
- 封装异常处理的read和write函数
- hibernate之HQL之left outer join
- hibernate之HQL之right outer join
- log4cplus使用帮助文档基础详解
- warning: conflicting types for built-in function 'putc'
- [CF 351A]Jeff and Rounding[greedy]
- c++ 多线程写日志的一个很实用的日志类源码(支持 c++ builder)
- ie6 png 透明的解决方法,大网站都在用
- 第一章--hadoop2.1.0和hadoop2.2.0编译安装教程
- C/C++ 编码规范
- hibernate之HQL之full join和笛卡儿积
- FCKEditor 中文字体添加与中文字体无效的解决方法