📄 logmanager.h
字号:
/*********************************************************************
* 版权所有 (C)2007, 深圳市中兴通讯股份有限公司。
*
* 文件名称: LogManager.h
* 文件标识:
* 内容摘要: 日志线程管理类定义
* 其它说明:
* 当前版本: V1.00
* 作 者:
* 完成日期: 2007/03/15
*
* 修改记录1:
* 修改日期:2005
* 版 本 号:V1.00
* 修 改 人:陈建友
* 修改内容:原始版本
* 修改记录2:
* 修改日期:2007/02/26
* 版 本 号:V1.00
* 修 改 人:王耀峰
* 修改内容:将ICE库替换为Boost库
* 修改记录3:
* 修改日期:2007/03/15
* 版 本 号:V1.00
* 修 改 人:张 帆
* 修改内容:优化代码
**********************************************************************/
#ifndef LOGMANAGER_H
#define LOGMANAGER_H
#include <string>
#include <vector>
#include <map>
#include <boost/shared_ptr.hpp>
#include <boost/thread/thread.hpp>
#include <boost/thread/mutex.hpp>
#ifndef LMSSERVER
#include "ILogger.h"
#else
#include "LSComm.h"
#endif
#include "Property.h"
#include "LogThread.h"
class CLogManager
{
public:
~CLogManager();
static CLogManager& GetInstance();
int Initialize();
int Finalize();
void AddItem(const NOP::LogItem& item);
private:
CLogManager(void);
std::string GetLogPath(void);
int GetMaxLine(void);
int GetHistoryAmnt(void);
std::vector<std::string> GetRemark(void);
std::vector<NOP::TLogLevel> GetLogLevel(const std::string& strRemark);
void StopAndWait(void);
private:
static CLogManager m_sLogManager; // 单实例对象
CProperty m_UserProperties; // 用户自定义的配置文件
// 函数对象集合
typedef boost::shared_ptr<CLogThread> LogThreadPtr;
std::vector<LogThreadPtr> m_vLogThread; // 日志线程队列
// 工作线程集合
boost::thread_group m_threads;
private:
// 用于线程安全的初始化和终止
bool m_bInitialized;
bool m_bFinalized;
// 定义互斥锁
typedef boost::mutex::scoped_lock lock;
boost::mutex m_mutex;
};
#endif //LOGMANAGER_H
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -