⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 logmanager.h

📁 日志模块代码
💻 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 + -