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日志封装相关推荐

  1. ios开发循环网络请求_谈谈 iOS 网络层设计(SSJNetWork封装缓冲,log日志,自动取消网络请求)...

    2.delegate效率高,delegate只是保存了一个对象指针3.在多个通信事件的时候,delegate显得直观也易维护. delegate缺点:1.因方法的声明和实现分离开来,代码的连贯性不是很 ...

  2. nodejs实践录:简单的log日志模块

    本文封装一个简单的日志模块,提供时间戳和日志等级.比较简单,直接上代码. 源码 var fs =require('fs');// TODO 等级由外部传入,或是宏定义,或是设置参数 const L_D ...

  3. Android日志Log的封装以及每个级别的意义

    Log级别介绍 Log.v()是日志级别中最低的,对应verbose,常用于打印琐碎,意义不大的日志信息. Log.d()比Log.v()高一级,对应debug,常用于打印一些调试信息. Log.i( ...

  4. 【Android 高性能音频】Oboe 开发流程 ( 创建并设置 AudioStreamCallback 对象 | 打开 Oboe 音频流 | 日志封装 logging_macros.h )

    文章目录 一.创建并设置 AudioStreamCallback 对象 二.打开 Oboe 音频流 三.日志封装 Oboe GitHub 主页 : GitHub/Oboe ① 简单使用 : Getti ...

  5. Golang中log日志包的使用

    文章目录 1.前言 2.log包介绍 3.log包的使用 3.1 日志输出方法 3.2 自定义创建日志对象 3.3 封装自定义日志包 3.4 log包进一步解析 1.前言 作为后端开发人员,日志文件记 ...

  6. Python语言+pytest框架+allure报告+log日志+yaml文件+mysql断言实现接口自动化框架

    目录 前言 实现功能 目录结构 依赖库 安装教程 接口文档 如何创建用例 创建用例步骤 用例中相关字段的介绍 如何发送get请求 如何发送post请求 如何测试上传文件接口 上传文件接口,即需要上传文 ...

  7. 使用NLog实现一个简单的日志记录(包含源代码)

    目前比较流行.net的Log框架是log4net,不过个人觉得log4net配置比较繁琐,这里我向大家推荐一个比较简单实用的log框架:NLog. 有兴趣的朋友可以到http://www.nlog-p ...

  8. 如何对系统中设置的修改记录增加log日志

    前段时间有个用户打电话给我,苦兮兮的说,他们的自定义的报表版本的内容不知道给谁删除的干干静静,然后咬牙切齿的说,一定要设个blog,抓住这个乱改的家伙. 我给他的答复是,对不起,自定义报表的行列字段修 ...

  9. Python + logging 输出到屏幕,将log日志写入文件(亲测)

    日志 日志是跟踪软件运行时所发生的事件的一种方法.软件开发者在代码中调用日志函数,表明发生了特定的事件.事件由描述性消息描述,该描述性消息可以可选地包含可变数据(即,对于事件的每次出现都潜在地不同的数 ...

最新文章

  1. win7怎么桌面能不能设置html,win7系统怎么格式化
  2. 编译php的时候,报configure: error: mcrypt.h not found. Please reinstall libmcrypt.错误的解决办法...
  3. 语音基础知识-基本语音知识,声谱图,log梅普图,MFCC,deltas详解
  4. better-scroll 与 Vue 结合
  5. java字符串替换 数组,Java工具类-拆分字符串组装数组,替换字符
  6. 代码理解(2009.11.20)
  7. scroll jquery
  8. 【软件工程导论】可行性研究
  9. 在ftp服务器上搜索文件名,ftp服务器上搜索文件
  10. 微信客服我是这样管理的
  11. bookxnote,类MarginNote的pc笔记软件,可与anki联合使用
  12. Trident API
  13. 2023编程语言趋势
  14. 戴尔win10开机后,在桌面点右键一直转圈,但任务栏又能正常点击
  15. 国内外设计及素材站[转载]
  16. java二维数组三种初始化方法(实例)
  17. 互联网之父访华 称将把互联网送到整个太阳系
  18. c语言流程图注释框,求此编程添加注释及流程图
  19. 计算机应用基础模块四,计算机应用基础模块四PPT课件.ppt
  20. 传感器php,传感器的组成是什么?

热门文章

  1. 项目中的鉴权是如何实现的?
  2. 送书 |《Python数据分析从小白到专家》
  3. Python数据可视化:数据分布图表可视化
  4. vs单步调试及断点调试基本介绍
  5. 微信公众号自定义功能页开发流程
  6. php 处理透明 png 图片黑边问题
  7. cdr文件太大怎么转成小内存 CDR文件太大打不开怎么办
  8. 基于MOD09Q1数据批量计算NDVI
  9. 【Laravel笔记】12. 模型的预加载
  10. Linux更改root用户名以提高安全性