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_)
posted @ 2009-05-23 10:45  ahuo  阅读(445)  评论(0编辑  收藏  举报