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

📄 nllogger.h

📁 一些unix下的c/c++的util包
💻 H
字号:
/**
 * 日志记录类定义
 * @file NLLogger.h
 * @date 14-Jul-2005
 * @author 胡春雨
 * @version 1.0.0: 初始版本
 */

#ifndef _NL_LOGGER_H
#define _NL_LOGGER_H

#include "nlkit/NLLogLevel.h"
#include "nlkit/NLAppender.h"
#include "nlkit/Properties.h"
#include "nlkit/NLEvent.h"
namespace nlkit
{
/**
 * 日志类
 */
class NLLogger
{
public:

	/**
	 * 构造函数
	 * @param 无
	 * @return 无
	 */
	NLLogger();

	/**
	 * 构造函数
	 * @param confHandler:	配置句柄
	 * @param seg_name:	段名称
	 * @return 无
	 */
	NLLogger(Properties& cfgHandler, const char* seg_name = NULL);

	/**
	 * 虚拟析构函数
	 * @param 无
	 * @return 无
	 */
	virtual ~NLLogger();

	/**
	 * 检查日志级别是否激活
	 * @param level:	日志级别
	 * @return bool:布尔值
	 *  - true:激活
	 *  - false:未激活
	 */
	bool isEnableFor(NLLogLevel level) { return m_level >= level; }

	/**
	 * 设置日志级别
	 * @param level:	日志级别
	 * @return 无
	 */
	void setLogLevel(NLLogLevel level) { m_level = level; }

	/**
	 * 取当前日志级别
	 * @param 无
	 * @return int:整型值,标识日志级别
	 */
	NLLogLevel getLogLevel() { return m_level; }

	/**
	 * 设置附加器
	 * @param newAppender:	附加器指针
	 * @return 无
	 */
	void addAppender(std::auto_ptr<NLAppender> newAppender);

	/**
	 * 初始化
	 * @param confHandler:	配置句柄
	 * @param seg_name:	段名称
	 * @param fileAdorn:    文件名称修饰
	 * @return 无
	 */
	void init(Properties& cfgHandler, const char* seg_name = NULL, const char* fileAdorn = NULL, EventAdornHandle* eventAdornHandle = NULL);

	/**
	 * 记录日志 
	 * @param ll:	日志级别
	 * @param message:	消息
	 * @param file:	文件名
	 * @param line:	行数
	 * @return 无
	 */
	void log(NLLogLevel ll, const std::string& message, const char* file=NULL, int line=-1);

private:
	NLLogLevel m_level;							/**< 日志级别 */
	/**
	 * 附加器类型
	 */
	enum APPENDER_TYPE
	{
		FILE_APPENDER = 1,								/**< 简单文件附加器 */
		SIZE_ROLLING_APPENDER = 2,						/**< 按文件大小切换附加器 */
		TIME_ROLLING_APPENDER = 3,						/**< 按时间切换附加器 */
		PARALLEL_APPENDER = 4	,						/**< 并发进程附加器 */
		JS_APPENDER = 5 ,                                        /**< 进程分离附加器*/
		THREAD_SAFE_APPENDER = 6                                 /**< 线程安全附加器*/
	};

	std::auto_ptr<NLAppender> m_appender;					/**< APPENDER句柄 */
    EventAdornHandle* m_pEventAdornHandle;
};
}

#endif // !_NL_LOGGER_H

⌨️ 快捷键说明

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