{"repo":"armink/EasyLogger","free":true,"listed":false,"github":"https://github.com/armink/EasyLogger","clone":"git clone https://github.com/armink/EasyLogger.git","description":"An ultra-lightweight(ROM<1.6K, RAM<0.3k), high-performance C/C++ log library. | 一款超轻量级(ROM<1.6K, RAM<0.3k)、高性能的 C/C++ 日志库","language":"C","stars":4716,"topics":["logger","c","high-performance","lightweight","log","logging"],"license":"MIT","category":"analytics","readme_excerpt":"EasyLogger --- 1. 介绍 EasyLogger 是一款超轻量级(ROM 名词解释： - 1、RAW格式：未经过格式化的原始日志。 - 2、标签：在软件中可以按照文件、模块、功能等方面，对需要打印的日志设定标签，实现日志分类。 1.2 插件 - 1、Flash：使用 EasyFlash 库提供的Flash操作接口，无需文件系统，直接将日志存储在 Flash 中。 - 2、File：支持文件转档、文件循环保存等与文件日志输出相关功能。 - 3、敬请期待…… 1.3 Star & Fork 后续我还会提供更多插件。也非常欢迎大家设计、开发更多实用插件和功能，一起来完善 EasyLogger (Github OSChina Coding) 。如果觉得这个开源项目很赞，可以点击项目主页 右上角的 Star ，同时把它推荐给更多有需要的朋友。 2. 使用 2.1 参数配置 EasyLogger 拥有过滤方式、输出格式、输出开关这些属性。 - 过滤方式支持按照标签、级别、关键词进行过滤； - 可以动态的开启/关闭日志的输出； - 可设定动态和静态的输出级别 - 静态：一级开关，通过宏定义，在编译阶段使用； - 动态：二级开关，通过API接口，在运行阶段使用。 注：目前参数配置及输出方式都是单例模式，即全局只支持一种配置方式。此模式下，软件会较为简单，但是无法支持复杂的输出方式。 2.2 输出级别 参考 Android Logcat ，级别最高为 0(Assert) ，最低为 5(Verbose) 。 2.2.1 输出缤纷多彩的日志 各个级别日志默认颜色效果如下。用户也可以根据自己的喜好，在 elog cfg.h 对各个级别日志的颜色及字体风格进行单独设置。 2.3 输出过滤 支持按照 级别、标签及关键词 进行过滤。日志内容较多时，使用过滤功能可以更快定位日志，保证日志的可读性。更多的过滤功能设置方法及细节请阅读 \\docs\\zh\\api\\kernel.md 文档 注：RAW格式、hexdump 格式日志不支持标签、关键词过滤 2.4 输出格式 输出格式支持：级别、时间、标签、进程信息、线程信息、文件路径、行号、方法名。每种优先级别可以独立设置输出格式。 2.5 输出方式 通过用户的移植，可以支持任何一种输出方式。只不过对于某种输出方式可能引入的新功能，需要通过插件实现，例如：文件转存，检索Flash日志等等。后期会有更多的插件开源出来。下面简单对比下部分输出方式使用场景： - 终端：方便用户动态查看，不具有存储功能； - 文件与Flash：都具有存储功能，用户可以查看历史日志。但是文件方式需要文件系统的支持，而Flash方式更加适合应用在无文件系统的小型嵌入式设备中。 2.6 Demo 2.6.1 核心功能 下图为在终端中输入命令来控制日志的输出及过滤器的设置，更加直观的展示了 EasyLogger 核心功能。 - Demo 路径： \\demo\\os\\rt-thread\\stm32f10x\\ - API 文档： \\docs\\zh\\api\\kernel.md - 移植文档： \\docs\\zh\\port\\kernel.md 2.6.2 Flash Log（将日志保存到 Flash 中） 下图过程为通过控制台输出日志，并将输出的日志存储到 Flash 中。重启再读取上次保存的日志，最后清空 Flash 日志。 - Demo 路径： \\demo\\os\\rt-thread\\stm32f10x\\ - API 文档： \\docs\\zh\\api\\flash.m","default_branch":null,"files":null,"tree":[],"storefront":"/r/armink","claimed":false,"request_supported":{"post":"https://gitbuyer.com/r/armink/EasyLogger/request-supported","requests":0},"note":"indexed from public GitHub; nothing is for sale on this page. Clone it from GitHub. Paid listings live at /search."}