动态调用 WebService (收藏转贴http://www.rainsts.net/article.asp?id=304)
来源:互联网 发布:windows media server 编辑:程序博客网 时间:2024/05/17 04:17
#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;
}
- 动态调用 WebService (收藏转贴http://www.rainsts.net/article.asp?id=304)
- NET Remoting一,二(收藏转帖http://www.rainsts.net/article.asp?id=408)
- [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)
- [Remoting] 五:信道(收藏转帖http://www.rainsts.net/article.asp?id=412)
- Message Queuing(收藏转帖http://www.rainsts.net/article.asp?id=418)
- [Remoting] 十一:事件(收藏转帖http://www.rainsts.net/article.asp?id=419)
- [Remoting] 十二:配置文件(收藏转帖http://www.rainsts.net/article.asp?id=420)
- [Remoting] 三:激活模式(收藏转帖http://www.rainsts.net/article.asp?id=410)
- [Remoting] 四:生存期租约(收藏转帖http://www.rainsts.net/article.asp?id=411)
- [Remoting] 八:元数据(收藏转帖http://www.rainsts.net/article.asp?id=415)
- [Remoting] 十:追踪服务(收藏转帖http://www.rainsts.net/article.asp?id=417)
- [ASP.NET 优化] IIS6 Gziphttp://www.rainsts.net/article.asp?id=531
- 从雨痕老大的博客上转来的 http://www.rainsts.net/article.asp?id=1066 读书人偷书不算窃 :)
- asp.net控件开发基础 来源:http://www.clingingboy.com/blog/article.asp?id=258
- 使用C#调用外部序或是执行DOS命令http://www.yaosansi.com/blog/article.asp?id=810
- WEB打印大全(http://www.pcsky.cn/article/list.asp?id=797)
- BotNet 研究笔记一
- asp.net日历控件
- 简单介绍SQL Server数据类型最大值
- 权限设计
- C# 字符串操作(转)
- 动态调用 WebService (收藏转贴http://www.rainsts.net/article.asp?id=304)
- 一步一步学struts2
- 用AJAX+J2EE实现一个网上会议室系统
- Hibernate 级联关系说明 - 关于cascade和inverse的用法
- 开博客了
- C#面试基础问题
- true actual
- Zend Studio5.5+Zend Debugger5.2
- js javascript:void(0) 真正含义