单片机简单Log日志封装
1、创建log.c文件
#include "log.h"
2、创建log.h文件
#ifndef __LOG_H_
#define __LOG_H_#include "stm32l0xx_hal.h"
#include "usart.h"
#include "stdio.h"
#include "string.h"#define USEA_MAIN_DEBUG #ifdef USEA_MAIN_DEBUG
#define Log_printf(format, ...) printf( format "\r\n", ##__VA_ARGS__)
#define Log_info(format, ...) printf( "[%s Line:%d] INFO: "format"\r\n", __FILE__, __LINE__, ##__VA_ARGS__)
#define Log_debug(format, ...) printf( "[%s Line:%d] DEBUG: "format"\r\n", __FILE__, __LINE__, ##__VA_ARGS__)
#define Log_error(format, ...) printf( "[%s Line:%d] ERROR: "format"\r\n", __FILE__, __LINE__, ##__VA_ARGS__)
#define Log_warn(format, ...) printf( "[%s Line:%d] WARN: "format"\r\n", __FILE__, __LINE__, ##__VA_ARGS__)
#define Log_verbose(format, ...) printf( "[%s Line:%d] VERBOSE: "format"\r\n", __FILE__, __LINE__, ##__VA_ARGS__)#else#define Log_printf(format, ...)
#define Log_info(format, ...)
#define Log_debug(format, ...)
#define Log_error(format, ...)
#define Log_warn(format, ...)
#define Log_verbose(format, ...)#endif#endif
在main.c文件中填写如下代码即可。
/* USER CODE BEGIN Includes */
#include "log.h"
/* USER CODE END Includes *//* USER CODE BEGIN WHILE */while (1){Log_info("heihei");HAL_Delay(1000);/* USER CODE END WHILE *//* USER CODE BEGIN 3 */}
/* USER CODE END 3 *//* USER CODE BEGIN 4 */int fputc(int ch, FILE *f)
{HAL_UART_Transmit(&huart1, (uint8_t *)&ch, 1, 1000); return (ch);
}/* USER CODE END 4 */
打印结果:
单片机简单Log日志封装相关推荐
- ios开发循环网络请求_谈谈 iOS 网络层设计(SSJNetWork封装缓冲,log日志,自动取消网络请求)...
2.delegate效率高,delegate只是保存了一个对象指针3.在多个通信事件的时候,delegate显得直观也易维护. delegate缺点:1.因方法的声明和实现分离开来,代码的连贯性不是很 ...
- nodejs实践录:简单的log日志模块
本文封装一个简单的日志模块,提供时间戳和日志等级.比较简单,直接上代码. 源码 var fs =require('fs');// TODO 等级由外部传入,或是宏定义,或是设置参数 const L_D ...
- Android日志Log的封装以及每个级别的意义
Log级别介绍 Log.v()是日志级别中最低的,对应verbose,常用于打印琐碎,意义不大的日志信息. Log.d()比Log.v()高一级,对应debug,常用于打印一些调试信息. Log.i( ...
- 【Android 高性能音频】Oboe 开发流程 ( 创建并设置 AudioStreamCallback 对象 | 打开 Oboe 音频流 | 日志封装 logging_macros.h )
文章目录 一.创建并设置 AudioStreamCallback 对象 二.打开 Oboe 音频流 三.日志封装 Oboe GitHub 主页 : GitHub/Oboe ① 简单使用 : Getti ...
- Golang中log日志包的使用
文章目录 1.前言 2.log包介绍 3.log包的使用 3.1 日志输出方法 3.2 自定义创建日志对象 3.3 封装自定义日志包 3.4 log包进一步解析 1.前言 作为后端开发人员,日志文件记 ...
- Python语言+pytest框架+allure报告+log日志+yaml文件+mysql断言实现接口自动化框架
目录 前言 实现功能 目录结构 依赖库 安装教程 接口文档 如何创建用例 创建用例步骤 用例中相关字段的介绍 如何发送get请求 如何发送post请求 如何测试上传文件接口 上传文件接口,即需要上传文 ...
- 使用NLog实现一个简单的日志记录(包含源代码)
目前比较流行.net的Log框架是log4net,不过个人觉得log4net配置比较繁琐,这里我向大家推荐一个比较简单实用的log框架:NLog. 有兴趣的朋友可以到http://www.nlog-p ...
- 如何对系统中设置的修改记录增加log日志
前段时间有个用户打电话给我,苦兮兮的说,他们的自定义的报表版本的内容不知道给谁删除的干干静静,然后咬牙切齿的说,一定要设个blog,抓住这个乱改的家伙. 我给他的答复是,对不起,自定义报表的行列字段修 ...
- Python + logging 输出到屏幕,将log日志写入文件(亲测)
日志 日志是跟踪软件运行时所发生的事件的一种方法.软件开发者在代码中调用日志函数,表明发生了特定的事件.事件由描述性消息描述,该描述性消息可以可选地包含可变数据(即,对于事件的每次出现都潜在地不同的数 ...
最新文章
- win7怎么桌面能不能设置html,win7系统怎么格式化
- 编译php的时候,报configure: error: mcrypt.h not found. Please reinstall libmcrypt.错误的解决办法...
- 语音基础知识-基本语音知识,声谱图,log梅普图,MFCC,deltas详解
- better-scroll 与 Vue 结合
- java字符串替换 数组,Java工具类-拆分字符串组装数组,替换字符
- 代码理解(2009.11.20)
- scroll jquery
- 【软件工程导论】可行性研究
- 在ftp服务器上搜索文件名,ftp服务器上搜索文件
- 微信客服我是这样管理的
- bookxnote,类MarginNote的pc笔记软件,可与anki联合使用
- Trident API
- 2023编程语言趋势
- 戴尔win10开机后,在桌面点右键一直转圈,但任务栏又能正常点击
- 国内外设计及素材站[转载]
- java二维数组三种初始化方法(实例)
- 互联网之父访华 称将把互联网送到整个太阳系
- c语言流程图注释框,求此编程添加注释及流程图
- 计算机应用基础模块四,计算机应用基础模块四PPT课件.ppt
- 传感器php,传感器的组成是什么?