zoukankan      html  css  js  c++  java
  • TLogger日志类

    // TLogger.cpp: implementation of the TLogger class.
    //
    //////////////////////////////////////////////////////////////////////

    //#include "stdafx.h"
    #include <windows.h>
    #include 
    "TLogger.h"


    TLogger gLogger;
    //////////////////////////////////////////////////////////////////////
    // Construction/Destruction
    //////////////////////////////////////////////////////////////////////

    TLogger::TLogger()
    {
        logger_ 
    = NULL;
    }

    TLogger::
    ~TLogger()
    {
        
    if( logger_ )
        {
            logger_
    ->Release();
        }
    }

    TLogger
    & TLogger::operator=(TLogger& logger)
    {
        
    this->logger_ = logger.logger_;
        
    if( logger_ )
        {
            logger_
    ->AddRef();
        }
        
    return *this;
    }
    TLogger::TLogger(TLogger
    & logger)
    {
        
    this->logger_ = logger.logger_;
        
    if( logger_ )
        {
            logger_
    ->AddRef();
        }
    }

    void TLogger::init(const char *szConfigFile, const char *szName)
    {
        
    /*
        if( NULL != szConfigFile )
        {
            log4cxx::PropertyConfigurator::configure(szConfigFile);
        }
        if( NULL != szName )
        {
            logger_ = log4cxx::Logger::getLogger(szName);
        }
        else
        {
            logger_ = log4cxx::Logger::getRootLogger();
        }
    */
        logger_ 
    = new TMTLog();
        
    if( logger_ )
        {
            logger_
    ->ReadLogConf(szConfigFile);
            
    if( FALSE == logger_->Start() )
            {
                
    char buffer[100]={0};
                _snprintf(buffer, 
    sizeof(buffer)-1"Create Thread Failed ! Err = %d\n", GetLastError());
                OutputDebugString(buffer);
            }
        }
        info(
    "%s start logging", szName);

    }
    void TLogger::debug(const char* szFormat, )
    {
        
    if( logger_ && logger_->GetLevel() <= levelDEBUG )
        {
            
    char buffer[1024= {0};
            va_list ap;
            va_start(ap, szFormat);
            _vsnprintf(buffer, 
    1023, szFormat, ap);
            va_end(ap);
            logger_
    ->WriteLog(levelDEBUG, buffer);
        }
        
    //logger_->debug(buffer);
    }
    void TLogger::info(const char* szFormat, )
    {
        
    if( logger_ && logger_->GetLevel() <= levelINFO )
        {
            
    char buffer[1024= {0};
        va_list ap;
        va_start(ap, szFormat);
        _vsnprintf(buffer, 
    1023, szFormat, ap);
        va_end(ap);
            logger_
    ->WriteLog(levelINFO, buffer);
        }
        
    //logger_->info(buffer);
    }
    void TLogger::warn(const char* szFormat, )
    {
        
    if( logger_ && logger_->GetLevel() <= levelWARN )
        {
        
    char buffer[1024= {0};
        va_list ap;
        va_start(ap, szFormat);
        _vsnprintf(buffer, 
    1023, szFormat, ap);
        va_end(ap);
        logger_
    ->WriteLog(levelWARN, buffer);
        }
        
    //logger_->warn(buffer);
    }
    void TLogger::error(const char* szFormat, )
    {
            
    if( logger_ && logger_->GetLevel() <= levelERROR )
        {
        
    char buffer[1024= {0};
        va_list ap;
        va_start(ap, szFormat);
        _vsnprintf(buffer, 
    1023, szFormat, ap);
        va_end(ap);
        logger_
    ->WriteLog(levelERROR, buffer);
            }
        
    //logger_->error(buffer);
    }
    void TLogger::fatal(const char* szFormat, )
    {
            
    if( logger_ && logger_->GetLevel() <= levelFATAL )
        {
        
    char buffer[1024= {0};
        va_list ap;
        va_start(ap, szFormat);
        _vsnprintf(buffer, 
    1023, szFormat, ap);
        va_end(ap);
        logger_
    ->WriteLog(levelFATAL, buffer);
            }
        
    //logger_->fatal(buffer);
    }
    // TLogger.h: interface for the TLogger class.
    //
    //////////////////////////////////////////////////////////////////////

    #if !defined(AFX_TLOGGER_H__AFAD1692_2FB1_46C6_87E9_45B8FB23C6B5__INCLUDED_)
    #define AFX_TLOGGER_H__AFAD1692_2FB1_46C6_87E9_45B8FB23C6B5__INCLUDED_

    #if _MSC_VER > 1000
    #pragma once
    #endif // _MSC_VER > 1000

    #include 
    "ILogger.h"
    #include 
    "TMTLog.h"
    class TLogger : public ILogger 
    {
    public:
        TLogger();
        
    virtual ~TLogger();
        TLogger
    & operator=(TLogger& logger);
        TLogger(TLogger
    & logger);
        
    void init(const char *szConfigFile, const char *szName);
        
    virtual void debug(const char* szFormat, );
        
    virtual void info(const char* szFormat, );
        
    virtual void warn(const char* szFormat, );
        
    virtual void error(const char* szFormat, );
        
    virtual void fatal(const char* szFormat, );

        TMTLog
    * logger_;
    };
    extern TLogger gLogger;
    #endif // !defined(AFX_TLOGGER_H__AFAD1692_2FB1_46C6_87E9_45B8FB23C6B5__INCLUDED_)
  • 相关阅读:
    javascript简繁转换函数
    在嵌套的repeater中加ItemDataBound事件
    asp.net url重写方法和步骤
    打开,另存为,属性,打印"等14个JS代码
    php中global的用法
    ini_get
    PHP学习笔记
    PHP isset()与empty()的使用区别详解
    PHP符号说明
    html禁止清除input文本输入缓存
  • 原文地址:https://www.cnblogs.com/ahuo/p/1487542.html
Copyright © 2011-2022 走看看