From ef95e117f753cfe3bcb411c83d1f16c04ed85fc7 Mon Sep 17 00:00:00 2001 From: armink Date: Fri, 28 Oct 2016 00:03:57 +0800 Subject: [PATCH] =?UTF-8?q?1=E3=80=81=E3=80=90=E5=AE=8C=E5=96=84=E3=80=91?= =?UTF-8?q?=E6=96=87=E6=A1=A3=E8=AF=B4=E6=98=8E=EF=BC=8C=E5=A2=9E=E5=8A=A0?= =?UTF-8?q?=E4=BB=8B=E7=BB=8D=E6=97=A5=E5=BF=97=E9=A2=9C=E8=89=B2=E5=8A=9F?= =?UTF-8?q?=E8=83=BD=E7=9A=84=E4=BD=BF=E7=94=A8=E5=8F=8A=E9=85=8D=E7=BD=AE?= =?UTF-8?q?=E8=AF=B4=E6=98=8E=E3=80=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: armink --- README.md | 7 +++++++ docs/zh/api/kernel.md | 14 +++++++++++++- docs/zh/images/TextColor.png | Bin 0 -> 28128 bytes docs/zh/port/kernel.md | 16 +++++++++++++++- 4 files changed, 35 insertions(+), 2 deletions(-) create mode 100644 docs/zh/images/TextColor.png diff --git a/README.md b/README.md index 8b53ba1..77374f2 100644 --- a/README.md +++ b/README.md @@ -14,6 +14,7 @@ - 支持多种操作系统([RT-Thread](http://www.rt-thread.org/)、UCOS、Linux、Windows...),也支持裸机平台; - 日志支持 **RAW格式** ; - 支持按 **标签** 、 **级别** 、 **关键词** 进行动态过滤; +- 各级别日志支持不同颜色显示 - 扩展性强,支持以插件形式扩展新功能。 > 名词解释: @@ -55,6 +56,12 @@ EasyLogger拥有过滤方式、输出格式、输出开关这些属性。 5.[V]:详细(Verbose) ``` +#### 2.2.1 设置不同的颜色及字体风格 + +各个级别日志默认颜色效果如下。用户也可以根据自己的喜好,在 `elog_cfg.h` 对各个级别日志的颜色及字体风格进行单独设置。 + +![TextColor](https://raw.githubusercontent.com/armink/EasyLogger/master/docs/zh/images/TextColor.png) + ### 2.3 输出过滤 支持按照 **级别、标签及关键词** 进行过滤。日志内容较多时,使用过滤功能可以更快定位日志,保证日志的可读性。更多的过滤功能设置方法及细节请阅读[`\docs\zh\api\kernel.md`](https://github.com/armink/EasyLogger/blob/master/docs/zh/api/kernel.md)文档 diff --git a/docs/zh/api/kernel.md b/docs/zh/api/kernel.md index 2b6e2b9..79024f5 100644 --- a/docs/zh/api/kernel.md +++ b/docs/zh/api/kernel.md @@ -245,6 +245,18 @@ void elog_assert_set_hook(void (*hook)(const char* expr, const char* func, size_ |:----- |:----| |hook |断言钩子方法| +### 1.15 使能/失能日志颜色 + +日志颜色功能是将各个级别日志按照颜色进行区分,默认颜色功能是关闭的。日志的颜色修改方法详见《EasyLogger 移植说明》中的 `设置参数` 章节。 + +``` +void elog_set_text_color_enabled(bool enabled) +``` + +|参数 |描述| +|:----- |:----| +|enabled |true: 使能,false: 失能| + ## 2、配置 -参照EasyLogger 移植说明([`\docs\zh\port\kernel.md`](https://github.com/armink/EasyLogger/blob/master/docs/zh/port/kernel.md))中的 `设置参数` 章节 +参照 《EasyLogger 移植说明》([`\docs\zh\port\kernel.md`](https://github.com/armink/EasyLogger/blob/master/docs/zh/port/kernel.md))中的 `设置参数` 章节 diff --git a/docs/zh/images/TextColor.png b/docs/zh/images/TextColor.png new file mode 100644 index 0000000000000000000000000000000000000000..a321de5c8e1b33f55faa93b182456caa82c5afb8 GIT binary patch literal 28128 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