📄 nllogger.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 + -