首页 > 其他分享 >分享一个轻量级的开源Log日志库

分享一个轻量级的开源Log日志库

时间:2023-04-15 14:40:10浏览次数:51  
标签:输出 Git Log 支持 开源 EasyLogger 日志 级别 轻量级


分享一个轻量级的开源Log日志库_log

本文分享一个网上找到的轻量级的开源日志库 — EasyLogger。对于嵌入式开发中需要使用到日志功能的,我个人觉得这个是个不错的选择,也是学习别人优秀代码的一个好例子。

首先要说明,这个EasyLogger不是我个人写的,是从网上找到的,感觉不错,使用说明也很详细,就想分享给更多人知道。感觉开源奉献的大佬们,让嵌入式开发有更多的丰富的参考代码和实用功能。

废话不多说,直接放EasyLogger仓库的地址,朋友们有需要的可以自行去克隆下载哦!地址如下:

https://gitee.com/Armink/EasyLogger

如果不懂Git怎么使用的话,可以参看我以前的文章:

Git 使用 — Git的下载与安装

Git 使用 — Git设置账户 & 查询账户信息

Git 使用 — 设置 Git 的SSH秘钥

Git 使用 — 创建远程仓库和本地仓库

Git 使用 — Git基本操作指令


1、有关 EasyLogger

EasyLogger 是一款超轻量级(ROM<1.6K, RAM<0.3K)、高性能的 C/C++ 日志库,非常适合对资源敏感的软件项目,例如:IoT 产品、可穿戴设备、智能家居等等。相比 log4c、zlog 这些知名的 C/C++ 日志库, EasyLogger 的功能更加简单,提供给用户的接口更少,但上手会很快,更多实用功能支持以插件形式进行动态扩展。


2、主要特性


1)支持用户自定义输出方式(例如:终端、文件、数据库、串口、485、Flash...); 

2)日志内容可包含级别、时间戳、线程信息、进程信息等; 

3)日志输出被设计为线程安全的方式,并支持 异步输出 及 缓冲输出 模式; 

4)支持多种操作系统(RT-Thread、UCOS、Linux、Windows...),也支持裸机平台; 

5)日志支持 RAW格式 ,支持 hexdump ; 

6)  支持按 标签 、 级别 、 关键词 进行动态过滤;

7)各级别日志支持不同颜色显示;扩展性强,支持以插件形式扩展新功能。



3、EasyLogger 的亮点

(1)功能配置

EasyLogger 拥有过滤方式、输出格式、输出开关这些属性。

  • 过滤方式支持按照标签、级别、关键词进行过滤;
  • 可以动态的开启/关闭日志的输出;
  • 可设定动态和静态的输出级别
  • 静态:一级开关,通过宏定义,在编译阶段使用;
  • 动态:二级开关,通过API接口,在运行阶段使用。


(2)输出级别可选

参考 Android Logcat ,级别最高为 0(Assert) ,最低为 5(Verbose) 。

0.[A]:断言(Assert)
1.[E]:错误(Error)
2.[W]:警告(Warn)
3.[I]:信息(Info)
4.[D]:调试(Debug)
5.[V]:详细(Verbose)

各个级别日志默认颜色效果如下。用户也可以根据自己的喜好在对各个级别日志的颜色及字体风格进行单独设置。如下:

分享一个轻量级的开源Log日志库_log_02

支持按照 级别、标签及关键词 进行过滤。日志内容较多时,使用过滤功能可以更快定位日志,保证日志的可读性。

输出格式支持:级别、时间、标签、进程信息、线程信息、文件路径、行号、方法名。每种优先级别可以独立设置输出格式。

通过用户的移植,可以支持任何一种输出方式。只不过对于某种输出方式可能引入的新功能,需要通过插件实现,例如:文件转存,检索Flash日志等等。


标签:输出,Git,Log,支持,开源,EasyLogger,日志,级别,轻量级
From: https://blog.51cto.com/wangjunlv/6192280

相关文章

  • 使用okhttp-4.10.0.jar报,但是发现没有HttpLoggingInterceptor的解决方法
    HttpLoggingInterceptor是OkHttp库中的一个拦截器,可以用于记录HTTP请求和响应的信息,如请求和响应的头部、HTTP方法和请求体等。在OkHttp3.x版本中,HttpLoggingInterceptor是内置的,可以直接使用。但是在OkHttp4.x版本中,HttpLoggingInterceptor被移动到了另外一个库ok......
  • 轻量级Web框架Flask(二)
    Flask-SQLAlchemyMySQL是免费开源软件,大家可以自行搜索其官网(https://www.MySQL.com/downloads/)测试MySQL是否安装成功在所有程序中,找到MySQL→MySQLServer5.6下面的命令行工具,然后单击输入密码后回车,就可以知道MySQL数据库是否链接成功。右击桌面上的“计算机”,在弹出的快......
  • 如何训练个人的ChatGpt4 - tokengo - 博客园 (cnblogs.com)
    如何训练个人的ChatGpt4-tokengo-博客园(cnblogs.com) 如何在自己的计算机上安装类似ChatGPT的个人AI并在没有互联网的情况下运行它本文旨在为任何人安装此软件。最初它有一个视频,伴随着操作方法,但是事情变化很快,我的三次尝试只是推迟了我发表这篇文章。我以后可能会......
  • Net6+NLog 写入数据库 Sql Server为例
    这个百度一大片,到处不行,国外网站找也是有问题,官网文档也是有点操蛋。搞到现在ok了直接上代码。//Program.cs配置#region日志LogManager.LoadConfiguration(ParameterConfig.Nlog).GetCurrentClassLogger();builder.Logging.AddNLog(ParameterConfig.Nl......
  • repository does not exist or may require 'docker login'
    理论上从docker hub拉取镜像时是不需要的登录,所以就只有一个原因: repositorydoesnotexist仓库类型将私有改成公开 ......
  • 开源许可证
    背景图文并茂解释开源许可证GPL、BSD、MIT、Mozilla、Apache和LGPL的区别?BSDBSD开源协议是一个给于使用者很大自由的协议。基本上使用者可以”为所欲为”,可以自由的使用,修改源代码,也可以将修改后的代码作为开源或者专有软件再发布。但”为所欲为”的前提当你发布使用了BSD协......
  • python + QXDM5高通平台通过自动化截取log方法及代码
    转自python+QXDM5高通平台通过自动化截取log方法及代码准备工作:1.安装QXDM52.配置adb环境变量3.使用python3以上4.完成代码如下1importsys2importtime3importos45ifsys.platform.startswith("linux"):6sys.path.append('/opt/qcom/QXD......
  • log4jnet中不输出报错的行号
    log4jnet中不输出报错的行号,后来发现原因是因为自己写了一个帮助类,报错的行号一直是该类的行号  需要把原始的Exception的参数传递过来就可以了,要不然一直都是帮助类的行号......
  • 香港理工即将开源!第一个仅使用CPU的实时LiDAR SLAM和网格化,速度40Hz!
    以下内容来自小六的机器人SLAM学习圈知识星球每日更新内容点击领取学习资料→机器人SLAM学习资料大礼包论文##开源代码#SLAMesh:Real-timeLiDARSimultaneousLocalizationandMeshing论文地址:https://arxiv.org/abs/2303.05252作者单位:香港理工大学开源代码:https://gi......
  • verilog语法+ _
    1.用处这两个应该算是运算符,运用在多位的变量中,如下:slv_reg0[(byte_index8)+:8]<=S_AXI_WDATA[(byte_index8)+:8];2."+:"变量[起始地址+:数据位宽]<–等价于–>变量[(起始地址+数据位宽-1):起始地址]data[0+:8]<--等价于-->data[7:0]data[15+:2]<--等价于-->dat......