当前位置:网站首页>Diagnostic Log and Trace——为应用程序和上下文设置日志级别的方法
Diagnostic Log and Trace——为应用程序和上下文设置日志级别的方法
2022-08-11 05:24:00 【andylauren】
上一篇最后说道默认打印级别是info,这一篇我们就来讲解如何修改这个打印级别。
dlt-daemon 设置初始应用程序日志级别
有一个配置参数(参见 /etc/dlt.conf)ContextLogLevel。当新应用程序在守护程序中注册自己时,守护程序会将应用程序的日志级别设置为参数定义的值。
当应用程序使用 DLT_REGISTER_CONTEXT() 或 dlt_register_context() 注册自己时会发生这种情况。
环境变量 DLT_INITIAL_LOG_LEVEL
有一个名为 DLT_INITIAL_LOG_LEVEL 的环境变量。它允许设置每个应用程序上下文的日志级别。有关更多详细信息,请参阅初始日志级别。
应用程序在具有自定义日志级别的守护进程中注册自己。
当应用程序使用 DLT_REGISTER_CONTEXT_LL_TS() 或 dlt_register_context_ll_ts() 注册自己时会定义自己的打印级别。
客户端(例如 dlt_viewer)在运行时更改特定应用程序上下文的日志级别。
上下文的初始日志级别由上述几种方法之一设置。
DLT 库运行时配置
通过设置不同的环境变量,可以在运行时配置 DLT 库——全局或针对特定进程。下面描述了这些环境变量:
初始日志级别
DLT 用户库的默认日志级别为 DLT_LOG_INFO(使用宏 DLT_REGISTER_CONTEXT 或 dlt_register_context() api 时)。这可以使用 DLT 客户端应用程序(例如 DLT Viewer)进行更改。但在 DLT 守护程序更新用户库之前,可能存在需要 DEBUG 或 VERBOSE 消息的情况。
在 DLT 库启动阶段有多种方法可以初始化日志级别。
可以通过导出环境变量 DLT_INITIAL_LOG_LEVEL 来做到这一点。通过这种方式,用户可以为上下文指定日志级别。
例如,应用程序“EXA1”具有两个上下文“CON1”和“CON2”。对于“CON1”日志级别 DEBUG 和“CON2”日志级别 VERBOSE 应使用。必须导出以下内容以配置库:
export DLT_INITIAL_LOG_LEVEL="EXA1:CON1:5;EXA1:CON2:6"
如果所有应用程序和上下文的日志级别都应该被初始化,那么:
导出 DLT_INITIAL_LOG_LEVEL="::2"
如果应初始化应用程序“EXA1”的所有上下文的日志级别,则:
导出 DLT_INITIAL_LOG_LEVEL="EXA1::2"
如果应初始化上下文“CON1”的日志级别,则:
导出 DLT_INITIAL_LOG_LEVEL=":CON1:2"
如果仅初始化应用程序“EXA1”的上下文“CON1”的日志级别,而忽略其他上下文,则:
导出 DLT_INITIAL_LOG_LEVEL="::0;EXA1:CON1:2"
如果环境中未导出 DLT_INITIAL_LOG_LEVEL 变量,则可以在配置文件 (/etc/dlt.conf) 中更改每个上下文的日志级别。
默认日志级别为 4 (DLT_LOG_INFO)
ContextLogLevel = 4
DLT 用户可以使用 dlt_register_context_ll_ts() api 来初始化每个上下文的日志级别。
例子:
//向守护进程注册新的上下文,初始日志级别为DLT_LOG_VERBOSE
dlt_register_context_ll_ts(&con_exa1, "CON", " First context ", DLT_LOG_VERBOSE, DLT_TRACE_STATUS_OFF);
上下文日志级别的优先级如下:
优先级 1:使用 dlt_register_context_ll_ts() api
优先级 2:使用环境变量 DLT_INITIAL_LOG_LEVEL
优先级 3:在配置文件 dlt.conf 中设置
本地打印模式
有时将用于调试的 DLT 消息直接打印到控制台可能很有用。要强制库这样做,可以导出以下环境变量:
导出 DLT_LOCAL_PRINT_MODE=FORCE_ON
库缓冲区大小
DLT 库包含一个消息缓冲区,以防 DLT 守护程序尚未启动或与 DLT 守护程序的连接暂时丢失。在库初始化时以最小大小分配缓冲区。如果需要存储更多消息,缓冲区会以定义的步长增长到最大大小。如果消息被刷新到 DLT 守护程序,缓冲区将减少到其最小大小。默认值和设置这些值的环境变量名称如下所述:
默认值 [以字节为单位] 环境变量名称
最小大小 50000 DLT_USER_BUFFER_MIN
最大大小 500000 DLT_USER_BUFFER_MAX
步长 50000 DLT_USER_BUFFER_STEP
例如,要将最大缓冲区大小限制为 250k 字节,可以导出以下内容:
导出 DLT_USER_BUFFER_MAX=250000
边栏推荐
- Generic kernel and userspace Makefiles
- AIDL 简介以及使用
- AI智能图像识别的工作原理及行业应用
- Joint 3D Instance Segmentation and Object Detection for Autonomous Driving
- Maykel Studio - Django Web Application Framework + MySQL Database Third Training
- 我心仪的数据集—目标检测为主
- Waymo数据集使用介绍(waymo-open-dataset)
- Joint 3D Instance Segmentation and Object Detection for Autonomous Driving
- 对MySQL查询语句的分析
- 解决SmartRefreshLayout/SwipeRefreshLayout与RecyclerView下拉冲突的问题
猜你喜欢
安全帽识别系统-为安全生产保驾护航
Waymo数据集使用介绍(waymo-open-dataset)
TAMNet:A loss-balanced multi-task model for simultaneous detection and segmentation
【调试记录1】提高MC3172浮点运算能力,IQmath库的获取与导入使用教程
梅科尔工作室-华为云ModelArts第二次培训
软件架构之--MVC、MVP、MVVM
Hardhat Recognition System - Solving Regulatory Conundrums
【sqlyog】【mysql】csv导入问题
弱监督语义分割CLIMS(CVPR2022)
.Net6 MiNiApi +EFCore6.0高B格操作的WebApi
随机推荐
【sqlyog】【mysql】csv导入问题
目标检测——LeNet
Wisdom construction site safety helmet identification system
Kotlin 增量编译的新方式 | 技术解析
【调试记录1】提高MC3172浮点运算能力,IQmath库的获取与导入使用教程
微信小程序canvas画图,保存页面为海报
Mysql导入UTF8编码数据库命令总结
weex入门踩坑
Robust 3D Object Detection in Cold Weather Conditions
pip安装报错:is not a supported wheel on this platform
Joint 3D Instance Segmentation and Object Detection for Autonomous Driving
OpenPCDet安装最新版:spconv一步到位
第七届集美大学程序设计竞赛(个人赛)题解
Safety helmet identification system - escort for safe production
小程序技术原理分析
Reconstruction and Synthesis of Lidar Point Clouds of Spray
解决Glide图片缓存问题,同一url换图片不起作用问题
Realize data exchange between kernel and userspace through character device virtual file system (passed based on kernel 5.8 test)
数据库的基本语法(其一)
Use regex to verify whether the file name is legal