3 Star 5 Fork 1

y-cz / y_log

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
克隆/下载
贡献代码
同步代码
取消
提示: 由于 Git 不支持空文件夾,创建文件夹后会生成空的 .keep 文件
Loading...
README
MIT

YLOG

1. YLOG 介绍

一种用于嵌入式设备简单调试的日志,可以方便的将需要输出的信息进行格式化显示。

2. YLOG 使用说明

ylog 目前包含一个源码文件 y_log.h 文件,使用时仅需以下简单设置。

// 1. 在 y_log.h 中设置功能开关
#define Y_LOG_SWITCH_TIME    0  ///< 日志时间打印开关                  0=关闭  1=打开
#define Y_LOG_SWITCH_COLOR   0  ///< 日志颜色打印开关                  0=关闭  1=打开
#define Y_LOG_SWITCH_NEWLINE 1  ///< 回车换行打印开关 (LF,CR,CRLF)     0=关闭  1=打开
#define Y_LOG_SWITCH_DATA    1  ///< 数据日志打印开关 (Data)           0=关闭  1=打开
#define Y_LOG_SWITCH_ASSERT  1  ///< 断言日志打印开关 (Assert)         0=关闭  1=打开  2=只判断不打印
#define Y_LOG_SWITCH_ERROR   1  ///< 错误日志打印开关 (Error)          0=关闭  1=打开
#define Y_LOG_SWITCH_WARN    1  ///< 警告日志打印开关 (Warn)           0=关闭  1=打开
#define Y_LOG_SWITCH_INFO    1  ///< 信息日志打印开关 (Info)           0=关闭  1=打开
#define Y_LOG_SWITCH_DEBUG   1  ///< 调试日志打印开关 (Debug)          0=关闭  1=打开
#define Y_LOG_SWITCH_VERBOSE 1  ///< 详细日志打印开关 (Verbose)        0=关闭  1=打开

示例:

#include "y_log.h"

int main() {

    // 打印 ylog 模块版本号  (若要带颜色打印 请将 Y_LOG_USE_COLOR 设置为 1)
    y_log_print_version();

    // 打印 回车换行
    YLOGI("LF");
    YLOG_LF();
    YLOGI("CR");
    YLOG_CR();
    YLOGI("CRLF");
    YLOG_CRLF();

    // 打印 16 进制格式数据
    unsigned char buf[8] = {1, 2, 3, 4, 5, 6, 7, 8};
    YLOG_DATA("DATA", buf, 8);
    YLOG_CRLF();

    // 打印 各种格式日志 (结束后默认换行)
    YLOGA_FALSE(1);  // >0 = 断言成功 程序继续执行  0 = 断言失败 程序立即返回
    YLOGE("HELLO,YLOG!!!");
    YLOGW("HELLO,YLOG!!!");
    YLOGI("HELLO,YLOG!!!");
    YLOGD("HELLO,YLOG!!!");
    YLOGV("HELLO,YLOG!!!");

    return 0;
}


// 输出结果:
[INFO ][0285][         y_log_print_version] ----- < V0.1.11 : module  Y_LOG >
[INFO ][0116][                        main] ----- < LF >

[INFO ][0118][                        main] ----- < CR >
[INFO ][0120][                        main] ----- < CRLF >

[DATA ][0125][                        main] ----- < DATA 8 byte :  [ 01 02 03 04 05 06 07 08 ]  >

[ERROR][0130][                        main] ----- < HELLO,YLOG!!! >
[WARN ][0131][                        main] ----- < HELLO,YLOG!!! >
[INFO ][0132][                        main] ----- < HELLO,YLOG!!! >
[DEBUG][0133][                        main] ----- < HELLO,YLOG!!! >
[VER  ][0134][                        main] ----- < HELLO,YLOG!!! >

3. 依赖

YLOG 目前依赖于以下代码库

  1. y_clangformat :   依赖于 y_clangformat 保持代码格式统一

4. 版本说明

V0.1.11

  1. 修改日志开关,由等级控制改为单独控制
  2. 更新文档描述

V0.1.10

  1. 增加断言宏 YLOGA_INIT 判断初始化是否成功,成功或者失败都打印一条日志
  2. 增加宏 YLOG_VERSION 打印版本信息

V0.1.9

  1. 增加断言宏 YLOGA_NULL、YLOGA_TRUE、YLOGA_FALSE,断言条件满足后直接返回

V0.1.8

  1. 增加断言宏 YLOGA,断言某个表达式是否为真
  2. 增加时间打印,使用时需要配置获取时间戳 API
  3. 修改颜色打印宏,减少宏判断,优化代码逻辑

V0.1.7

  1. 修改 YLOG_DATA 宏打印格式,改为一行打印

V0.1.6

  1. 修改默认打印为 Y_LEVEL_DEBUG 等级, 解决初次使用打印内容过多的问题

V0.1.5

  1. 增加回车换行打印宏,YLOG_LF(), YLOG_CR(), YLOG_CRLF()
  2. readme.md 增加使用示例

V0.1.4

  1. 修改数据打印时循环变量命名,避免与常用循环变量 i 发生冲突

V0.1.3

  1. 取消使能宏,更改通过为设置日志等级 Y_LEVEL_NONE 关闭日志打印,解决某些情况下突然关闭使能导致编译不过
  2. 增加数据日志打印功能,将需处理的数据按字节打印出来

V0.1.2

  1. 文件中添加 MIT 许可证
  2. 修改注释风格和部分宏名称,使阅读时更容易理解
  3. USE_Y_LOG 和 Y_LOG_USE_COLOR 从定义使能更改为 0/1 值使能
  4. 代码行数显示由固定 3 位改为固定 4 位,解决文件行数大于 1000 时打印对不齐的问题
  5. 打印内容前后各增加一个空格
  6. 版本号打印由函数变为内联函数,并删除 y_log.c 文件,方便使用

V0.1.1

  1. 修改宏定义名称,防止与其他日志系统产生冲突。
  2. 修改一些对齐格式,使格式更简单美观,方便阅读。

V0.1.0

  1. 格式化输出 日志等级,行号,函数名,日志信息 等内容。
  2. 可静态配置输出日志等级。
  3. 可以选择是否带颜色输出,并可单独设置不同日志的输出颜色。
MIT License Copyright (c) 2022 y-cz Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

简介

一种用于嵌入式设备调试的简单日志库 展开 收起
C
MIT
取消

发行版

暂无发行版

贡献者

全部

近期动态

加载更多
不能加载更多了
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
C
1
https://gitee.com/y-cz/y_log.git
git@gitee.com:y-cz/y_log.git
y-cz
y_log
y_log
master

搜索帮助

344bd9b3 5694891 D2dac590 5694891