Code/Resource
Windows Develop
Linux-Unix program
Internet-Socket-Network
Web Server
Browser Client
Ftp Server
Ftp Client
Browser Plugins
Proxy Server
Email Server
Email Client
WEB Mail
Firewall-Security
Telnet Server
Telnet Client
ICQ-IM-Chat
Search Engine
Sniffer Package capture
Remote Control
xml-soap-webservice
P2P
WEB(ASP,PHP,...)
TCP/IP Stack
SNMP
Grid Computing
SilverLight
DNS
Cluster Service
Network Security
Communication-Mobile
Game Program
Editor
Multimedia program
Graph program
Compiler program
Compress-Decompress algrithms
Crypt_Decrypt algrithms
Mathimatics-Numerical algorithms
MultiLanguage
Disk/Storage
Java Develop
assembly language
Applications
Other systems
Database system
Embeded-SCM Develop
FlashMX/Flex
source in ebook
Delphi VCL
OS Develop
MiddleWare
MPI
MacOS develop
LabView
ELanguage
Software/Tools
E-Books
Artical/Document
LogTrace.cpp
Package: 语音程序.rar [view]
Upload User: lczygg
Upload Date: 2007-07-03
Package Size: 2947k
Code Size: 4k
Category:
Speech/Voice recognition/combine
Development Platform:
Visual C++
- ////////////////////////////////////////////////////////////////////////
- // LogTrace.cpp -- Implementation of the CLogTrace class
- #include "stdafx.h"
- #include <afxdisp.h>
- #include "LogTrace.h"
- /**************************************************
- How to use CLogTrace
- 1. Make a static CLogTrace object as a member of the application class
- 2. Add the following lines to the InitInstance of the program
- m_LogTrace.m_strAppName = "MyApp"; // use appropriate name here
- m_LogTrace.SetFileName("Log.txt"); // sets the log file name and puts it in the exe path
- m_LogTrace.OnStartup(TRUE, TRUE); // activates the log trace
- 3. Also in InitInstance, add the following line if you want to empty the log file
- each time the application starts
- m_LogTrace.ResetFile();
- 4. Any time you want to write to the log file, use the CLogTrace::WriteLine functions
- these will write the text along with date and time
- *******************************************************/
- //////////////////////////////////////////////////////
- // Construction/Destruction
- CLogTrace::CLogTrace()
- {
- m_bActive = FALSE;
- m_bTimeStamp = TRUE;
- CString s;
- }
- CLogTrace::~CLogTrace()
- {
- }
- ////////////////////////////////////////////////////////
- // CLogTrace operations
- void CLogTrace::ResetFile()
- {
- CStdioFile f;
- CFileException fe;
- CString s;
- if (m_strFileName.IsEmpty()) return;
- if (f.Open(m_strFileName, CFile::modeWrite | CFile::modeCreate, &fe) == FALSE)
- {
- return;
- }
- f.Close();
- }
- // bActive tells us if we want the trace to be active or not
- // bTimeStamp tells us if we want time stamps on each line
- // eliminating the time stamp allows us to use this class for a regular log file
- void CLogTrace::OnStartup(BOOL bActive, BOOL bTimeStamp)
- {
- m_bActive = bActive;
- m_bTimeStamp = bTimeStamp;
- if (bTimeStamp == FALSE) return;
- CString s;
- // these ***'s help to indicate when one ru of the program ends and another starts
- // because we don't always overwrite the file each time
- WriteLine("nn******************************************nn");
- s.Format("%s Log Trace %snn", m_strAppName, COleDateTime::GetCurrentTime().Format());
- WriteLine(s);
- }
- // function to write a line of text to the log file
- void CLogTrace::WriteLine(LPCTSTR szLine)
- {
- try
- {
- FILE *fp = fopen(m_strFileName, "a");
- CString s;
- if (m_bTimeStamp)
- {
- fputs(COleDateTime::GetCurrentTime().Format(), fp);
- fputs("t", fp);
- }
- fputs(szLine, fp);
- fputs("n", fp);
- fclose(fp);
- }
- catch(...)
- {
- AfxMessageBox("改写日志错误");
- }
- /*CStdioFile f;
- CFileException fe;
- CString s;
- if (m_bActive == FALSE) return;
- if (m_strFileName.IsEmpty()) return;
- if (f.Open(m_strFileName, CFile::modeWrite | CFile::modeCreate |
- CFile::modeNoTruncate, &fe) == FALSE)
- {
- return;
- }
- try
- {
- f.SeekToEnd();
- TRACE("LOGGIN %sn", szLine);
- if (m_bTimeStamp)
- {
- s.Format("%st%sn", COleDateTime::GetCurrentTime().Format(),
- szLine);
- }
- else
- {
- s.Format("%sn", szLine);
- }
- f.WriteString(s);
- }
- catch (CException* e)
- {
- e->Delete();
- }
- f.Close();*/
- }
- // function to write a line of text, with an extra string
- void CLogTrace::WriteLine(LPCTSTR szFormat, LPCTSTR szAddInfo)
- {
- if (m_bActive == FALSE) return;
- CString s;
- s.Format(szFormat, szAddInfo);
- WriteLine(s);
- }
- // funtion to write a line of text with an extra integer
- void CLogTrace::WriteLine(LPCTSTR szFormat, int nAddInfo)
- {
- if (m_bActive == FALSE) return;
- CString s;
- s.Format(szFormat, nAddInfo);
- WriteLine(s);
- }
- // function to set the log file name. don't pass a fill path!
- // just pass something like "log.txt"
- // the file will be placed in the same dir as the exe file
- void CLogTrace::SetFileName(LPCTSTR szFileName)
- {
- TCHAR drive[_MAX_PATH], dir[_MAX_PATH], name[_MAX_PATH], ext[_MAX_PATH];
- const char *path = _pgmptr ;
- _splitpath(path, drive, dir, name, ext);
- m_strFileName.Format("%s%s%s", drive, dir, szFileName);
- }