logmanager.h

来自「iocp vc例子,自己是学DELPHI」· C头文件 代码 · 共 58 行

H
58
字号
// LogManager.h: interface for the CLogManager class.
//
//////////////////////////////////////////////////////////////////////

#if !defined(AFX_LOGMANAGER_H__02D80C04_D681_474F_87BC_A878CF9A2FDB__INCLUDED_)
#define AFX_LOGMANAGER_H__02D80C04_D681_474F_87BC_A878CF9A2FDB__INCLUDED_

#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000

#include <afxmt.h>

enum LOGTOTYPE
{
	LOGTO_NONE=0, //不记录日志
	LOGTO_DEBUG=1, //记录到调试信息
	LOGTO_FILE=2	//记录到文件
};

//定义xml中的节点名
#define XML_LOGMANAGER_LOGTO _T("LogTo")	//日志记录位置
#define XML_LOGMANAGER_LOGLEVEL _T("LogLevel")	//日志记录级别
#define XML_LOGMANAGER_LOGFILE _T("LogFile")	//日志记录文件
#define XML_LOGMANAGER_LOGDOMAINLIST _T("LogDomainList")	//日志记录域过滤列表
#define XML_LOGMANAGER_LOGCLASSLIST _T("LogClassList")	//日志记录类过滤列表

#define LoggingX CLogManager::Instance()->Logging
#define Logging2(a, b) CLogManager::Instance()->Logging(CErrorInfo(a, b, _T(""), __LINE__, __FILE__))
#define Logging3(a, b, c) CLogManager::Instance()->Logging(CErrorInfo(a, b, c, __LINE__, __FILE__))
#define Logging4(a, b, c, d) CLogManager::Instance()->Logging(CErrorInfo(a, b, c, d, __LINE__, __FILE__))

class AFX_EXT_CLASS CLogManager  
{
private:
	CLogManager(); 

public:	
	virtual ~CLogManager();

private:
	CCriticalSection m_csLog;	//日志记录锁,写文件时使用
	CItemComposite m_itemLogs;	//日志记录配置信息

private:
	int LoggingToDebug(CString strLogging);	//记录日志到调试信息
	int LoggingToFile(CString strLogging);	//记录日志到文件
	int Logging(CString strLogging);	//记录日志
	int InitConfig();	//初始化日志记录配置信息
	
public:
	static CLogManager* Instance();	//单件模式
	int Logging(CErrorInfo ErrInfo);	//记录日志
	int Logging(const char *format, ...);	//记录日志
};

#endif // !defined(AFX_LOGMANAGER_H__02D80C04_D681_474F_87BC_A878CF9A2FDB__INCLUDED_)

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?