From eb64e2d346da49d88e80242a3c93875006116e77 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=B4=94=E4=B8=80=E9=B8=A3?= Date: Sun, 12 Aug 2018 19:59:51 +0800 Subject: [PATCH] Delete README --- README | 182 --------------------------------- src/.MESA_handle_logger.cc.swp | Bin 16384 -> 0 bytes 2 files changed, 182 deletions(-) delete mode 100644 README delete mode 100644 src/.MESA_handle_logger.cc.swp diff --git a/README b/README deleted file mode 100644 index 3cc48f9..0000000 --- a/README +++ /dev/null @@ -1,182 +0,0 @@ -####简介 -MESA_handle_logger_new是基于开源C++日志库[easylogging++](https://github.com/muflihun/easyloggingpp)封装的新的日志库。具有以下特性: - -* 线程安全 -* 强大的配置功能 -* 保留旧接口不变,完全兼容旧程序 - -#### 安装方法 - -``` - git clone https://git.mesalab.cn/leo/MESA_handle_logger_new - cd MESA_handle_logger_new - //install到MESA_handle_logger_new/lib/下 - make && make install - //指定运行时链接的日志库为新的.so的目录 - export LD_LIBRARY_PATH="xxxx" -``` -#### 对外接口 -* 获取日志句柄 - * 为了兼容旧程序,我们保留了旧的接口,同时提供了一个新的方法用来获取句柄 - * MESA_create_runtime_log_handle( )和MESA_create_runtime_log_handle_new( )中会使用一份默认的日志配置。具体内容见src/MESA_handle_logger.c中的set_default_conf( )函数 - -``` -/* functionality: 旧接口,用来获取日志句柄 - params: - file_path: 日志文件保存路径, 长度不能超过256 - level: 日志文件级别,>=该级别的日志才会输出,level = {RLOG_LV_DEBUG, RLOG_LV_INFO, RLOG_LV_FATAL } - returns: - void*: 返回一个日志句柄 -*/ -void *MESA_create_runtime_log_handle(const char *file_path, int level); - - -/* functionality: 新接口,用来获取日志句柄 - desc: 新接口不用显示指定日志文件路径和日志级别,可以在配置文件配置或者通过MESA_set_runtime_log_handle_opt指定 - 对于新程序,我们推荐使用这种方法 - params: - logger_id: 一个logger_id唯一标识一个日志句柄 - returns: - void*: 返回一个日志句柄 -*/ -void* MESA_create_runtime_log_handle_new(const char* logger_id); -``` -* 配置日志属性 - * 我们提供了两种方法用来配置日志属性 - * 读取配置文件 - * 在代码中显式配置某个属性 - -``` -/* functionality: 读取日志配置文件,我们推荐使用这种方法 - params: - handle: 日志句柄 - conf_file_path: 配置文件路径 - returns: - 0: 成功 - -1: 失败 -*/ -int MESA_read_runtime_log_handle_conf(void* handle, const char* conf_file_path); - - -/* functionality: 设置某个日志属性 - desc: 可配置的属性值见"可配置日志属性" - params: - handle: 日志句柄 - level: 设置的日志级别,level = {RLOG_LV_DEBUG, RLOG_LV_INFO, RLOG_LV_FATAL } - key: 配置的属性 - value: 配置的属性值 - returns: - 0: 成功 - -1: 失败 -*/ -int MESA_set_runtime_log_handle_opt(void* handle, int level, const char* key, const char* value); -``` - -* 写日志 - * 写日志接口保持和原来一致 - -``` -/* functionality: 写日志 - params: - handle: 日志句柄 - level: 设置的日志级别,level = {RLOG_LV_DEBUG, RLOG_LV_INFO, RLOG_LV_FATAL } - module: 日志所属模块 - fmt: 格式化字符串,单条日志长度不能超过4096 - returns: none -*/ -void MESA_handle_runtime_log(void *handle, int level, const char *module, const char *fmt, ...); -``` - -* 释放句柄 - * 释放句柄保持和原来一致 - -``` -/* functionality: 释放日志句柄 - params: - handle: 日志句柄 - returns: none -*/ -void MESA_destroy_runtime_log_handle(void *handle); -``` -#### 可配置日志属性 - -| Configuration Name | Description | Value | -| --- | --- | --- | -| enabled | Determines whether or not corresponding level for logger is enabled | {“true”, “false”} | -| to_file | Whether or not to write corresponding log to log file | {“true”, “false”} | -| to_standard_output | Whether or not to write logs to standard output e.g, terminal or command prompt | {“true”, “false”} | -| format | Determines format/pattern of logging for corresponding level and logger. | 如: ”[%level%datetime{%Y-%M-%d %H:%m:%s}]: %msg“ | -| file_name | Determines log file (full path) to write logs to for corresponding level and logger | 如: “./log2/debug_log_%datetime{%Y-%M-%d}“ | -| max_log_file_size | If log file size of corresponding level is >= specified size, log file will be truncated. | 如: “2097152” | -| sub_second_precision | Specifies subsecond precision (previously called 'milliseconds width')|{“1”, “2”, “3”, “4”, “5”, “6”,}| -|performance_tracking |determines whether or not performance tracking is enabled|{“true”, “false”}| -| log_flush_threshold | Specifies number of log entries to hold until we flush pending log data|如: “100” | - -####日志配置文件格式 -* 这里仅仅以FATAL级别的配置为例,完整配置参考sample/new/sample.conf -* %level, %datetime是格式化变量,运行时会变成对应的值 -* GLOBAL是全局配置,作用于所有Level。其相当于一个开关。 - * 若GLOBAL中配置了属性A: - * Level(DEBUG,INFO,FATAL)中配置了属性A:Level使用自己配置的属性A - * Level(DEBUG,INFO,FATAL)中没有配置属性A:Level使用GLOBAL中配置的属性A - * 若GLOBAL中没有配置属性A: - * 无论Level(DEBUG,INFO,FATAL)中是否配置属性A,属性A均不生效 - -``` -* GLOBAL: - FORMAT = "[%level|%datetime{%Y-%M-%d %H:%M:%s}]: %msg" - FILENAME = "myeasylog.log" - ENABLED = true - TO_FILE = true - TO_STANDARD_OUTPUT = true - ## SUBSECOND_PRECISION = 6 - ## PERFORMANCE_TRACKING = true - ## MAX_LOG_FILE_SIZE = 2097152 - ## LOG_FLUSH_THRESHOLD = 100 - -* FATAL: - FORMAT = "[%level|%datetime{%Y-%M-%d %H:%m:%s}]: %msg" ##日志内容格式 - FILENAME = "./log1/fatal_log_%datetime{%Y-%M-%d}" ##日志保存路径 - ENABLED = true - TO_FILE = true - TO_STANDARD_OUTPUT = true - ##SUBSECOND_PRECISION = 6 ## 暂时用不到 - ##PERFORMANCE_TRACKING = true ## 暂时用不到 - ##MAX_LOG_FILE_SIZE = 2097152 ## 文件最大值,超过该值后日志文件会truncated,这里是2MB - ##LOG_FLUSH_THRESHOLD = 100 ## Flush after every 100 logs, 暂时用不到 -``` -####示例程序 -* 旧程序 - -``` -void* handle = MESA_create_runtime_log_handle("./log/sample_log", RLOG_LV_DEBUG); -MESA_handle_runtime_log(handle, RLOG_LV_DEBUG, "module", "test debug log:%s", "xxxxx"); -MESA_destroy_runtime_log_handle(handle); -``` -* 新程序 - -``` -##通过读取配置文件设置日志属性 -void* handle1 = MESA_create_runtime_log_handle_new("logger_id1"); -int rtn = MESA_read_runtime_log_handle_conf(handle, "./sample.conf"); -MESA_handle_runtime_log(handle, RLOG_LV_DEBUG, "module_test_read_conf", "test debug log:%s", "xxxxx"); -MESA_destroy_runtime_log_handle(handle1); - -##通过代码中显式设置某个日志属性 -void* handle2 = MESA_create_runtime_log_handle("logger_id2"); -MESA_set_runtime_log_handle_opt(handle, RLOG_LV_DEBUG, "Enabled", "true"); -MESA_set_runtime_log_handle_opt(handle, RLOG_LV_DEBUG, "ToFile", "true"); -MESA_set_runtime_log_handle_opt(handle, RLOG_LV_DEBUG, "ToStandardOutput", "true"); -MESA_set_runtime_log_handle_opt(handle, RLOG_LV_DEBUG, "Format", "[%level|%datetime{%Y-%M-%d %H:%m:%s}]: %msg"); -MESA_set_runtime_log_handle_opt(handle, RLOG_LV_DEBUG, "Filename", "./log2/debug_log_%datetime{%Y-%M-%d}"); -MESA_handle_runtime_log(handle, RLOG_LV_DEBUG, "module_test_set_opt", "test debug log:%s", "xxxxx"); -MESA_destroy_runtime_log_handle(handle2); -``` -#### F.A.Q -* 对于旧的程序,如果想在不修改代码的情况下也想使用配置文件进行日志配置,可不可以呢? - * 可以,在旧接口MESA_create_runtime_log_handle( )中,我们会读取 **MESA_HANDLE_LOGGER_CONF_PATH**这个环境变量。然后根据环境变量中的路径读取配置文件进行配置。 - * 所以你只需要编写配置文件,然后export MESA_HANDLE_LOGGER_CONF_PATH="xxxxx"就可以使用配置文件进行配置了。 - * 其中xxxx为你的配置文件所在的路径 - - - diff --git a/src/.MESA_handle_logger.cc.swp b/src/.MESA_handle_logger.cc.swp deleted file mode 100644 index 50c52cc3c5565ea299a09ca49666d368234010c7..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 16384 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 uPXCi~2iZ@)MR3V0p