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_)

你可能感兴趣的:(Logger)