动态调用 WebService (收藏转贴http://www.rainsts.net/article.asp?id=304)
2008-03-26 11:11
375 查看
#pragma once
#include <stdlib.h>
class CLogger
{
public:
CLogger(void);
CLogger(LPCTSTR lpszFileName, BOOL bAtCurrDir = TRUE, BOOL bLogTime = FALSE, BOOL bAppendMode = FALSE);
virtual ~CLogger(void);
void Write(const char* format, ...);
void WriteLine(const char* format, ...);
void EnableLogTime(BOOL bEnable);
private:
CStdioFile m_logFile;
BOOL m_bLogTime;
void OpenFile(LPCTSTR lpszFileName, BOOL bAppendMode);
};
//////////////////////////////////////////////////////////////////////////
CLogger::CLogger(LPCTSTR lpszFileName,
BOOL bAtCurrDir /*= TRUE*/,
BOOL bLogTime /*= FALSE*/,
BOOL bAppendMode /*= FALSE*/):
m_bLogTime(bLogTime)
{
CString strLog;
if (bAtCurrDir)
{
TCHAR szFullPath[MAX_PATH];
TCHAR szDir[_MAX_DIR];
TCHAR szDrive[_MAX_DRIVE];
// Get application's full path.
::GetModuleFileName(NULL, szFullPath, MAX_PATH);
// Break full path into seperate components.
_splitpath(szFullPath, szDrive, szDir, NULL, NULL);
// Store application's drive and path
strLog.Format(_T("%s%s//%s"), szDrive, szDir, lpszFileName);
}
else
strLog = lpszFileName;
OpenFile(strLog, bAppendMode);
}
CLogger::CLogger()
{
TCHAR szFileName[MAX_PATH];
::GetModuleFileName(NULL, szFileName, MAX_PATH);
CString strLog(szFileName);
CTime t = CTime::GetCurrentTime();
strLog.Replace(".exe", t.Format("_%Y_%m_%d") + ".txt");
OpenFile(strLog, TRUE);
}
void CLogger::OpenFile(LPCTSTR lpszFileName, BOOL bAppendMode)
{
int mode =
CStdioFile::modeCreate |
CStdioFile::modeWrite |
CStdioFile::shareDenyWrite;
if (bAppendMode)
mode |= CStdioFile::modeNoTruncate;
m_logFile.Open(lpszFileName, mode);
m_logFile.SeekToEnd();
}
CLogger::~CLogger(void)
{
m_logFile.Close();
}
void CLogger::Write(const char* format, ...)
{
static TCHAR msg[1024];
va_list argptr;
va_start(argptr, format);
_vsnprintf(msg, sizeof(msg), format, argptr);
va_end(argptr);
if (m_bLogTime)
m_logFile.WriteString(CTime::GetCurrentTime().Format("%Y-%m-%d %H:%M:%S, ").GetBuffer(0));
m_logFile.WriteString(msg);
m_logFile.Flush();
}
void CLogger::WriteLine(const char* format, ...)
{
static TCHAR msg[1024];
va_list argptr;
va_start(argptr, format);
_vsnprintf(msg, sizeof(msg), format, argptr);
va_end(argptr);
if (m_bLogTime)
m_logFile.WriteString(CTime::GetCurrentTime().Format("%Y-%m-%d %H:%M:%S, ").GetBuffer(0));
m_logFile.WriteString(msg);
m_logFile.WriteString("/n");
m_logFile.Flush();
}
void CLogger::EnableLogTime(BOOL bEnable)
{
m_bLogTime = bEnable;
}
#include <stdlib.h>
class CLogger
{
public:
CLogger(void);
CLogger(LPCTSTR lpszFileName, BOOL bAtCurrDir = TRUE, BOOL bLogTime = FALSE, BOOL bAppendMode = FALSE);
virtual ~CLogger(void);
void Write(const char* format, ...);
void WriteLine(const char* format, ...);
void EnableLogTime(BOOL bEnable);
private:
CStdioFile m_logFile;
BOOL m_bLogTime;
void OpenFile(LPCTSTR lpszFileName, BOOL bAppendMode);
};
//////////////////////////////////////////////////////////////////////////
CLogger::CLogger(LPCTSTR lpszFileName,
BOOL bAtCurrDir /*= TRUE*/,
BOOL bLogTime /*= FALSE*/,
BOOL bAppendMode /*= FALSE*/):
m_bLogTime(bLogTime)
{
CString strLog;
if (bAtCurrDir)
{
TCHAR szFullPath[MAX_PATH];
TCHAR szDir[_MAX_DIR];
TCHAR szDrive[_MAX_DRIVE];
// Get application's full path.
::GetModuleFileName(NULL, szFullPath, MAX_PATH);
// Break full path into seperate components.
_splitpath(szFullPath, szDrive, szDir, NULL, NULL);
// Store application's drive and path
strLog.Format(_T("%s%s//%s"), szDrive, szDir, lpszFileName);
}
else
strLog = lpszFileName;
OpenFile(strLog, bAppendMode);
}
CLogger::CLogger()
{
TCHAR szFileName[MAX_PATH];
::GetModuleFileName(NULL, szFileName, MAX_PATH);
CString strLog(szFileName);
CTime t = CTime::GetCurrentTime();
strLog.Replace(".exe", t.Format("_%Y_%m_%d") + ".txt");
OpenFile(strLog, TRUE);
}
void CLogger::OpenFile(LPCTSTR lpszFileName, BOOL bAppendMode)
{
int mode =
CStdioFile::modeCreate |
CStdioFile::modeWrite |
CStdioFile::shareDenyWrite;
if (bAppendMode)
mode |= CStdioFile::modeNoTruncate;
m_logFile.Open(lpszFileName, mode);
m_logFile.SeekToEnd();
}
CLogger::~CLogger(void)
{
m_logFile.Close();
}
void CLogger::Write(const char* format, ...)
{
static TCHAR msg[1024];
va_list argptr;
va_start(argptr, format);
_vsnprintf(msg, sizeof(msg), format, argptr);
va_end(argptr);
if (m_bLogTime)
m_logFile.WriteString(CTime::GetCurrentTime().Format("%Y-%m-%d %H:%M:%S, ").GetBuffer(0));
m_logFile.WriteString(msg);
m_logFile.Flush();
}
void CLogger::WriteLine(const char* format, ...)
{
static TCHAR msg[1024];
va_list argptr;
va_start(argptr, format);
_vsnprintf(msg, sizeof(msg), format, argptr);
va_end(argptr);
if (m_bLogTime)
m_logFile.WriteString(CTime::GetCurrentTime().Format("%Y-%m-%d %H:%M:%S, ").GetBuffer(0));
m_logFile.WriteString(msg);
m_logFile.WriteString("/n");
m_logFile.Flush();
}
void CLogger::EnableLogTime(BOOL bEnable)
{
m_bLogTime = bEnable;
}
相关文章推荐
- [Remoting] 十一:事件(收藏转帖http://www.rainsts.net/article.asp?id=419)
- [Remoting] 六:异步调用(收藏转帖http://www.rainsts.net/article.asp?id=413)
- [Remoting] 七:调用上下文(收藏转帖http://www.rainsts.net/article.asp?id=414)
- [Remoting] 九:动态发布(收藏转帖http://www.rainsts.net/article.asp?id=416)
- NET Remoting一,二(收藏转帖http://www.rainsts.net/article.asp?id=408)
- [Remoting] 十:追踪服务(收藏转帖http://www.rainsts.net/article.asp?id=417)
- [Remoting] 四:生存期租约(收藏转帖http://www.rainsts.net/article.asp?id=411)
- Message Queuing(收藏转帖http://www.rainsts.net/article.asp?id=418)
- [Remoting] 五:信道(收藏转帖http://www.rainsts.net/article.asp?id=412)
- [Remoting] 十二:配置文件(收藏转帖http://www.rainsts.net/article.asp?id=420)
- [Remoting] 三:激活模式(收藏转帖http://www.rainsts.net/article.asp?id=410)
- 从雨痕老大的博客上转来的 http://www.rainsts.net/article.asp?id=1066 读书人偷书不算窃 :)
- [ASP.NET 优化] IIS6 Gziphttp://www.rainsts.net/article.asp?id=531
- [Remoting] 八:元数据(收藏转帖http://www.rainsts.net/article.asp?id=415)
- asp.net动态调用webservice
- winsock学习笔记(一)(http://www.vccode.net/article_view.asp?id=737)
- Asp.NET 2.0学习资源(reference from http://www.eyeya.com/article.asp?id=197)
- winsock学习笔记(二)(http://www.vccode.net/article_view.asp?id=738)
- Ajax开发之JSON应用http://onewww.net/blog/article.asp?id=47
- 如何动态调用asp.net Webservice