你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

【经验分享】STM32移植EasyLogger,在终端输出带颜色的日志

[复制链接]
STMCU小助手 发布时间:2022-4-19 22:37
一、效果欣赏
7 c- Z3 E( `* X" n
) \: w. X8 C' i  Z; c4 R, \0 y
20210527094931912.png $ P- Y1 \4 w+ |5 G8 T9 n& r
- x5 u$ Q" B# ~( v0 x/ A, |4 y+ w
二、EasyLogger介绍

. g9 e+ H# n3 B# T  {+ x, {  EasyLogger 是一款超轻量级(ROM<1.6K, RAM<0.3K)、高性能的 C/C++ 日志库,非常适合对资源敏感的软件项目,例如: IoT 产品、可穿戴设备、智能家居等等。相比 log4c、zlog 这些知名的 C/C++ 日志库, EasyLogger 的功能更加简单,提供给用户的接口更少,但上手会很快,更多实用功能支持以插件形式进行动态扩展。
7 i, i* J- B5 r主要特性:$ B* A& W. o" L# W! |4 I* |
1.支持用户自定义输出方式(例如:终端、文件、数据库、串口、485、Flash…);
( g" }% A% H: Z& C; ]3 f' y3 X2.日志内容可包含级别、时间戳、线程信息、进程信息等;
% P# z1 h+ a: L& Y3.日志输出被设计为线程安全的方式,并支持 异步输出 及 缓冲输出 模式;
, d  ]: n  R9 }+ v( K/ b4.支持多种操作系统(RT-Thread、UCOS、Linux、Windows…),也支持裸机平台;( A2 ?8 H9 ]# ?% c
5.日志支持 RAW格式 ;7 W  y. m" ~- r8 W4 W; {# N) x) {! ^$ U
6.支持按 标签 、 级别 、 关键词 进行动态过滤;  `- w6 n# O/ X, M( O) K, _- c
7.各级别日志支持不同颜色显示0 ~7 a" D1 V8 z8 Q
8.扩展性强,支持以插件形式扩展新功能。
7 H* d8 M/ X2 ]+ }  X4 i三、EasyLogger输出带颜色文本设置# n8 ?0 i5 G# `- U6 M8 {% _
首先定义#define PKG_EASYLOGGER_ENABLE_COLOR和ELOG_COLOR_ENABLE# _6 [% Q7 M( e  l3 C
其次将elog_set_text_color_enabled(false);改为elog_set_text_color_enabled(true);
% U2 ~6 w/ E# R6 |6 V/ h
' X* G) ?& `1 U/ i$ R四、EasyLogger输出标签设置& P$ \5 a, T' r. X

' T. _. b! w2 H0 J8 E0 O
  1.         elog_set_fmt(ELOG_LVL_ASSERT, ELOG_FMT_ALL & ~ELOG_FMT_P_INFO);& Q* h1 r8 _9 |
  2.         elog_set_fmt(ELOG_LVL_ERROR, ELOG_FMT_LVL | ELOG_FMT_TAG | ELOG_FMT_TIME);
      I% z4 U9 n4 w9 E
  3.         elog_set_fmt(ELOG_LVL_WARN, ELOG_FMT_LVL | ELOG_FMT_TAG | ELOG_FMT_TIME);7 r5 q6 w  P5 k& M" j) w" a
  4.         elog_set_fmt(ELOG_LVL_INFO, ELOG_FMT_LVL | ELOG_FMT_TAG | ELOG_FMT_TIME);0 c- ]% ^& F" l. [8 Q' j# U$ n/ i
  5.         elog_set_fmt(ELOG_LVL_DEBUG, ELOG_FMT_ALL & ~(ELOG_FMT_FUNC | ELOG_FMT_P_INFO));
    2 S; U  [. a" s" I/ K* L
  6.         elog_set_fmt(ELOG_LVL_VERBOSE, ELOG_FMT_ALL & ~(ELOG_FMT_FUNC | ELOG_FMT_P_INFO));        
复制代码

! e- D' y4 _" K1 ?$ A& A五、EasyLogger输出
( x( \3 ]& J1 `. w* t4 X
8 ?6 Y/ ^( \( k9 t
  1. log_a("Hello EasyLogger!");
    $ Q1 T9 W/ s; F' _; J/ Q
  2. log_e("Hello EasyLogger!");
    ! c1 x8 w$ A3 `$ H/ c! U
  3. log_w("Hello EasyLogger!");
    * X) m  P8 g% [; v4 U5 z! G; i: |
  4. log_i("Hello EasyLogger!");
    5 Z' n2 B& t+ S  J7 R; A
  5. log_d("Hello EasyLogger!");
    / F# i- G! C5 _6 c1 e
  6. log_v("Hello EasyLogger!");          C3 }7 a+ ]& G9 M
  7. , s2 n, D2 {0 P4 z+ V
  8. 0.[A]:断言(Assert)
    $ V5 T, Z; ~# j
  9. 1.[E]:错误(Error)
    " G' V3 O% u& K9 B1 f
  10. 2.[W]:警告(Warn)
    7 H! g6 j3 n3 V6 D, A/ |
  11. 3.[I]:信息(Info)
    : K) F+ d+ V) s
  12. 4.[D]:调试(Debug)0 h7 x/ f+ h7 b
  13. 5.[V]:详细(Verbose)
复制代码
/ [. Z6 b) x, h3 U. W) O

9 y/ C+ d/ h/ m# D
2 l+ I# w. G4 \$ ~" I$ W% ^) S9 ?, N6 p* V; ]* i: A5 y- [
赞 收藏 评论0 发布时间:2022-4-19 22:37

举报

0个回答

所属标签

相似技术帖

官网相关资源

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
人形机器人运动控制、感知与智能配电
半导体创新技术与应用方向
EE架构与软件定义汽车
12V/48V 汽车智能配电(SPD)
区域控制单元(ZCU)与分区架构
关注我们
st-img 微信公众号
st-img 手机版