zoukankan      html  css  js  c++  java
  • 对轻量级C++日志类[转]

    //log.h
    //hujinshan@2004.1.3 Airforce Engineering University
    /*
    //CLog* CLog::_instance = NULL;
     
    CLog::GetObj().Write( "******* 初始化完成 *******" );
    CLog::GetObj().tmWrite( "******* 开始渲染No1. *******" );
    CLog::GetObj();
     
     Clog文件中有 #define CLog /##/ 的语句,
     这是为了使日志在release版无效,
     使用单行注释,所以如果调用时如果要换行,
     请务必在换行最后加上 / 符号,
     
    */
     
    /*#ifndef _DEBUG
    #define CLog /##/
    #define _CLOG_H
    #endif*/
     
    #ifndef _CLOG_H
    #define _CLOG_H
     
    #include <fstream>
    #include <ctime>
     
    classCLog
    {
             CLog()
             {      
                       pfnewofstream ("inmstrace.log"ios::app);
             }
     
             static CLog_instance;
             ofstreampf;
    public:
             ~CLog()
             {
                      _instance=0;                  
                      pf->close();
             }
     
             static CLogGetPtr()
             {
                      if(!_instance)
                                _instance=newCLog;
                      return(_instance);
             }
     
             static CLogGetObj()
             {
                      if(!_instance)
                                _instance=newCLog;
                      return(*_instance);
             }
     
             template<classT> inline CLogWrite(Tval)
             {
                       (*pf) << val ;
                      pf->flush();
                       return *this;
             }
            
             template<classT> inline CLogtmWrite(Tval)
             {
            charstrBuf[50];       
            time_tltime;
            time( &ltime );
            struct tm *today = localtime( &ltime );
            sprintf(strBuf"%4d-%2.2d-%2.2d %2.2d:%2.2d:%2.2d ",
                today->tm_year+1900, today->tm_mon+1, today->tm_mdaytoday->tm_hour,
                today->tm_mintoday->tm_sec);
           
                       (*pf) << strBuf << val << "/r/n";
                      pf->flush();
                       return *this;
             }
     
             template<classT> inline CLog& operator<< (Tval)
             {
                       (*pf) << val ;
                      pf->flush();
                       return *this;
             }
     
    };
     
    #endif
  • 相关阅读:
    大数据分析服务器硬件配置如何选择
    Laravel 在哪些地方使用了 trait ?
    PHP 中 Traits 的简单使用
    Laravel中Trait的用法实例详解
    Trait 概览
    Laravel trait 使用心得
    Laravel 5 项目部署到生产环境的实践
    Laravel 的 Events(事件) 及 Observers(观察者)
    Eloquent Observer 的小坑
    Ubuntu 网卡多个 IP 地址
  • 原文地址:https://www.cnblogs.com/rooney/p/2595432.html
Copyright © 2011-2022 走看看