嵌入式软件打log的一些心得

本文分享了嵌入式软件开发中打log的经验,强调了异常处理、重大操作、时间戳、文件行号、进程ID和线程ID等重要原则。通过实例展示了在内存申请、函数参数检查、模块加载、文件操作、网络通信和数据库操作等方面如何有效地记录日志,以提高问题定位和解决效率。
摘要由CSDN通过智能技术生成

本文适用范围:Linux系统

使用语言:C/C++

打log的原则

1、异常分支或错误处理一定要打log

2、重大操作时一定要打log,下面打log场景会讲述

log格式的原则

1、时间戳必须有,最好能够精确到微秒。精确到秒的时间戳,相信很多人都熟悉,这能够确认问题的时间和系统uptime的对比,能够进一步还原问题的场景。

至于到微秒,在多线程程序下,如果进程停止响应,可以从日志时间看是否死锁。

一般格式:

2、打log位置的文件名和代码行数。这个不用说,用于定位问题根源。其实最重要是防止扯皮。因为程序员大多喜欢copy-paste,如果你不加文件名和行数,某程序员copy了你的代码,修改了点,出错了,到时候把你拉下水。

一般格式:

3、有进程id。有些log机制在进程重启时,不会重新生成一个日志文件,而是直接在同一个日志文件后面添加日志。或者,有时候同一程序的多个进程同时运行,可能也会写入到同一个日志文件。

一般格式:

4、有线程id。在多线程程序,如果不加线程id,很难追溯程序的行为

一般格式:

5、有日志的级别。日志是反映问题的,有不同紧急程序的问题,自然有不同的日志级别。一般采用Error,Warning,Info,Debug。定义不同级别

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值