// 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);
}
//
//////////////////////////////////////////////////////////////////////
//#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,
![](https://www.cnblogs.com/Images/dot.gif)
{
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,
![](https://www.cnblogs.com/Images/dot.gif)
{
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,
![](https://www.cnblogs.com/Images/dot.gif)
{
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,
![](https://www.cnblogs.com/Images/dot.gif)
{
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,
![](https://www.cnblogs.com/Images/dot.gif)
{
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_)
//
//////////////////////////////////////////////////////////////////////
#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,
![](https://www.cnblogs.com/Images/dot.gif)
virtual void info(const char* szFormat,
![](https://www.cnblogs.com/Images/dot.gif)
virtual void warn(const char* szFormat,
![](https://www.cnblogs.com/Images/dot.gif)
virtual void error(const char* szFormat,
![](https://www.cnblogs.com/Images/dot.gif)
virtual void fatal(const char* szFormat,
![](https://www.cnblogs.com/Images/dot.gif)
TMTLog* logger_;
};
extern TLogger gLogger;
#endif // !defined(AFX_TLOGGER_H__AFAD1692_2FB1_46C6_87E9_45B8FB23C6B5__INCLUDED_)