# alog **Repository Path**: stephencui/alog ## Basic Information - **Project Name**: alog - **Description**: alog是一个非常精简的串口输出日志组件,类似easyloger,但是比easyloger更简单易用,只有2个实际不到百行的文件,实现了基本日志所需的全部功能。 需移植配置的接口选项少,实现了串口输出字符串就可以用了,没有C库以外的其他依赖。 没有存储日志相关的扩展的API,适合新手使用理解和在资源紧张的单片机上移植使用。 - **Primary Language**: Unknown - **License**: GPL-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 13 - **Created**: 2023-09-23 - **Last Updated**: 2023-09-23 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # alog ![alog测试结果](https://gitee.com/nikolan/alog/raw/master/doc/mobaterm_%E6%B5%8B%E8%AF%95%E7%BB%93%E6%9E%9C.png) ## brief 功能介绍: > alog是一个非常精简的串口输出日志组件, > 类似easyloger,但是比easyloger更简单易用, > 只有2个实际不到百行的文件,实现了基本日志所需的全部功能。 > 需移植配置的接口选项少,实现了串口输出字符串就可以用了,没有C库以外的其他依赖。 > 没有存储日志相关的扩展的API,适合新手使用理解和在资源紧张的单片机上移植使用 ## 特色 ![alog类图](https://gitee.com/nikolan/alog/raw/master/doc/alog%E7%B1%BB%E5%9B%BE.png) - 支持可裁剪的格式输出功能 - 预留互斥锁的调用宏定义 - 支持自定义log过滤的等级 - 支持显示报错所在文件和行数 - 预留RTC功能的宏定义支持输出报错和警告的rtc时间 ## 注意!!! > 推荐在支持颜色码的串口终端查看输出的日志,否则普通串口助手收到的颜色码可能就是乱码 > 例如:mobaxterm 、xshell 等 ## 源码结构 @version 当前版本:0.1

+---doc 文档
+---example 例子
| \---port 移植好的例程
| +---ATK_stm32F407_HAL_example_5_uart 正点原子F407HAL库串口例程
| |
| +---ATK_stm32F407_RES_example_5_uart 正点原子F407寄存器串口例程
| |
| +---ATK_stm32F407_STD_example_4_uart 正点原子F407标准库串口例程
| |
| \---PY32F002A_uart
+---inc 头文件
| alog.h
\---src 源文件
alog.c
## 移植教程 可参考已经移植好的工程 和源码对配置项的解释 来移植到你使用的单片机平台 步骤就是 1. 首先把alog.h加入头文件路径目录 2. 然后把alog.c加入工程 3. 把alog.h注释掉的的宏定义//#deine LOG_PORT_UART_INIT
换为#deine LOG_PORT_UART_INIT (你实现的对应的串口初始化函数) 4. 把alog.h注释掉的的宏定义//#deine LOG_PORT_UART_PUTS
换为#deine LOG_PORT_UART_PUTS (你实现的对应的串口输出字符串的puts函数)
其他功能,例如互斥锁和RTC时间戳功能,可选择性实现。
如果你对互斥锁没有概念,那么只需保证在裸机下让日志阻塞输出,既不在中断中直接输出即可。
如果你已经会用rtc功能,那么使用sprintf实现一个返回rtc时间戳字符串的函数替换alog.h的#define LOG_RTC_STRING即可
## 开源地址 GLPv2开源协议
gitee开源地址:https://gitee.com/nikolan/alog.git
author 作者: ageek_nikola
邮箱:(2503865771@qq.com)