LVGL 日志
一、启动日志
在 lv_conf.h 中将 LV_USE_LOG 设置为 1,如下图所示:

二、日志级别
在文件 lvgl/src/misc/lv_log.h 中定义了日志等级,等级是从小到大,所以 LV_LOG_LEVEL_USER 的等级最高
#define LV_LOG_LEVEL_TRACE 0 /**< 记录所有信息*/
#define LV_LOG_LEVEL_INFO 1 /**< 记录重要事件*/
#define LV_LOG_LEVEL_WARN 2 /**< 记录是否发生了警告事件*/
#define LV_LOG_LEVEL_ERROR 3 /**< 记录错误信息,当系统可能发生故障时或致命错*/
#define LV_LOG_LEVEL_USER 4 /**< 来自用户的自定义日志*/
#define LV_LOG_LEVEL_NONE 5 /**< 不要记录任何东西*/
#define _LV_LOG_LEVEL_NUM 6 /**< 日志级别数*/
通过设置 LV_LOG_LEVEL 日志级别过滤日志信息,只有大于等于设置过滤日志级别的信息才能输出,如下图所示:

三、日志输出选择
/*1: Print the log with 'printf';
*0: User need to register a callback with `lv_log_register_print_cb()`*/
#define LV_LOG_PRINTF 0
通过设置 LV_LOG_PRINTF 的值设置日志输入模式,设置为 1 时,通过系统的 printf 函数输出,设置为 0 时,通过自定义的数据函数进行输出。
通过源码,查看 LVGL 日志输出方式,如下图所示:

使用自定义输出时,使用 lv_log_register_print_cb() 函数注册日志回调函数。
/**
* @brief 日志输出回调函数
*
* @param buf 日志信息
*/
void esp32_log_cb(const char * buf)
{
printf(buf);
}
/* 注册日志输出回调函数 */
lv_log_register_print_cb(esp32_log_cb);
回调函数指针,如下图所示:

四、日志使用
从下图中可以看出日志输出的等级,如下图所示:

通过使用日志输出模块
LV_LOG_TRACE(...)
LV_LOG_INFO(...)
LV_LOG_WARN(...)
LV_LOG_ERROR(...)
LV_LOG_USER(...)
注意:使用方式和 printf 函数一样
LVGL 日志的更多相关文章
- 【分析笔记】LVGL v8.2.0 使用 freetype 概率性无显示的问题
使用目前最新的 Releases 版本 LVGL v8.2.0 ,移植好 freetype2 后测试,发现每次启动程序时会高概率出现屏幕显示全白色背景,无任何内容的问题. 打开日志开关,出现问题时会有 ...
- .NetCore中的日志(2)集成第三方日志工具
.NetCore中的日志(2)集成第三方日志工具 0x00 在.NetCore的Logging组件中集成NLog 上一篇讨论了.NetCore中日志框架的结构,这一篇讨论一下.NetCore的Logg ...
- .NetCore中的日志(1)日志组件解析
.NetCore中的日志(1)日志组件解析 0x00 问题的产生 日志记录功能在开发中很常用,可以记录程序运行的细节,也可以记录用户的行为.在之前开发时我一般都是用自己写的小工具来记录日志,输出目标包 ...
- Logstash实践: 分布式系统的日志监控
文/赵杰 2015.11.04 1. 前言 服务端日志你有多重视? 我们没有日志 有日志,但基本不去控制需要输出的内容 经常微调日志,只输出我们想看和有用的 经常监控日志,一方面帮助日志微调,一方面及 ...
- SQLServer事务同步下如何收缩日志
事务同步是SQLServer做读写分离的一种常用的方式. 随着业务数据的不断增长,数据库积攒了大量的日志,为了腾出硬盘空间,需要对数据库日志进行清理 订阅数据库的日志清理 因为订阅数据库所有的数据都来 ...
- 如何正确使用日志Log
title: 如何正确使用日志Log date: 2015-01-08 12:54:46 categories: [Python] tags: [Python,log] --- 文章首发地址:http ...
- 前端学HTTP之日志记录
前面的话 几乎所有的服务器和代理都会记录下它们所处理的HTTP事务摘要.这么做出于一系列的原因:跟踪使用情况.安全性.计费.错误检测等等.本文将谥介绍日志记录 记录内容 大多数情况下,日志的记录出于两 ...
- ASP.NET Core应用中如何记录和查看日志
日志记录不仅对于我们开发的应用,还是对于ASP.NET Core框架功能都是一项非常重要的功能特性.我们知道ASP.NET Core使用的是一个极具扩展性的日志系统,该系统由Logger.Logger ...
- .NET Core的日志[5]:利用TraceSource写日志
从微软推出第一个版本的.NET Framework的时候,就在“System.Diagnostics”命名空间中提供了Debug和Trace两个类帮助我们完成针对调试和跟踪信息的日志记录.在.NET ...
- .NET Core的日志[4]:将日志写入EventLog
面向Windows的编程人员应该不会对Event Log感到陌生,以至于很多人提到日志,首先想到的就是EventLog.EventLog不仅仅记录了Windows系统自身针对各种事件的日志,我们的应用 ...
随机推荐
- 面试官:小伙子知道synchronized的优化过程吗?我:嘚吧嘚吧嘚,面试官:出去!
写在开头 面试官:小伙子,多线程中锁用过吗? 我:那是自然! 面试官:那你知道synchronized的优化吗? 我:synchronized作为重锁,开销大,在早期不被推荐使用,后期进行了优化,至于 ...
- Loto实践干货(9) 示波器测 晶振
我们用LOTO示波器的多个型号,带宽从20M到100M,分别测无源和有源晶振的情况.分别测试了12M,15M,24M,48M,80M晶振的波形.并分析了为什么我们经常测出晶振波形不是方波?为什么有时候 ...
- C# ASP.NET MVC 配置 跨域访问
在web.config文件中的 system.webServer 节点下 增加如下配置 <httpProtocol> <customHeader ...
- parameter常数及常数函数的使用
模型功能 常数在verilog设计中具备特殊的含义 一个可以由编译器进行处理的数 和C语言中常数一个不变的变量的作用不同 在verilog中,常数更多地作为预编译变量以提高设计的灵活性 在上一篇文章中 ...
- SQLite数据库(来自菜鸟教程)
SQLite是什么?为什么要用SQLite?SQLite有什么特点? 答:下面请听小猪娓娓道来: ①SQLite是一个轻量级的关系型数据库,运算速度快,占用资源少,很适合在移动设备上使用, 不仅支持标 ...
- 前端使用 Konva 实现可视化设计器(1)
使用 konva 实现一个设计器交互,首先考虑实现设计器的画布. 一个基本的画布: [展示]网格.比例尺 [交互]拖拽.缩放 "拖拽"是无尽的,"缩放"是基于鼠 ...
- #状压dp#D 诗人小K
分析 考虑题目的唯一突破口就是\(x,y,z\) 那么要与二进制状态挂上钩,状态应表示某一段正好为\(x,y或z\) 设\(g[s][i]\)表示当前位置的元素为\(i\),上一次状态为\(s\), ...
- 聚焦AI新技术,HMS Core机器学习服务为移动应用智能化注入新动力
近年来,以机器学习为代表的人工智能技术(以下简称AI技术)蓬勃发展.新算法层出不穷,开发出的图像识别.自然语言.活体检测等能力令智能化的未来生活不再遥不可及.同时,这些AI技术正持续演化和发展,数据和 ...
- openGauss/MogDB调用C FUNCTION
openGauss/MogDB 调用 C FUNCTION 摘要 之前写过一篇关于postgresql 自定义函数实现,通过 contrib 模块进行扩展的帖子,今天和恩墨工程师进行了一些交流,在 M ...
- TensorFlow2数据类型
1.1 数值类型 数值类型的张量是 TensorFlow 的主要数据载体,分为: 1.标量(Scalar) 单个的实数,如 1.2, 3.4 等,维度数(Dimension,也叫秩)为 0, shap ...