跳至内容
深圳市捷比信实业有限公司 · 产品选型与采购咨询联系业务人员
抗浪涌电阻捷比信 · 专业器件主题站

轻松理解和打印一篇文章中的有效日志

简介在日常代码测试或运行中,必须打印日志以检查代码运行状态。让我举三个例子:设备何时在IoT系统中联机,您可以将联机信息写入数据库,也可以将设备的联机记录打印到日志中。使用设备ID作为文件名来查找日志。更为方便的是,在线时间,IP地址等均以文本形式打印。在复杂的多链接系统中,快速找到有问题的链接并打印每个系统数据接口的数据日志。如果有返回值,则可以判断执行是否成功。您只能打印错误日志并在出现问题时检查日志文件。可以定位该链接。在异常捕获中,将错误信息打印到日志文件中以快速检查代码或数据问题。日志的功能常规程序日志来自以下要求:记录用户操作的审核日志,有时是主管部门的要求。快速找到问题的根源并跟踪程序执行的过程。跟踪数据更改,数据统计和性能分析,收集操作环境数据。通常,在程序联机后,一旦发生异常,第一件事就是弄清楚当时发生了什么。用户当时做了什么,环境是否受到影响,对数据进行了哪些更改,数据是否反复发生等,然后进一步确定问题的大致范围。确认这是程序问题后,将其移交给开发人员进行复制,研究和提出解决方案。目前,日志为我们提供了第一手信息。编写日志的要求日志可读性日志供人们阅读,不仅可以让他们自己理解,而且还可以使其他未触及我们源代码的程序员清楚地知道日志。一些同事在日志中打印特殊的标识符号,例如“ ++++++++++”,“ ============”,这些符号令人眼花azz乱。此外,将日志分类输出到不同的文件还可以帮助我们消除干扰并快速找到所需的信息。此外,最好在打印日志时输出英文,以防止在不支持中文时打印乱码。日志性能无论我们将日志写入文件还是数据库,我们都需要消耗IO资源。适当控制日志输出也有利于提高程序性能。例如:尝试避免在大循环中打印无关紧要的日志内容。最好在输出日志之前判断日志的级别(例如,在调试之前调用isDebugEnabled()进行判断)。占用磁盘空间通常,我们将日志写入磁盘上的日志文件。适当使用滚动日志并定期清除旧文件是有益的。我已经看到了一个示例,该程序在运行几次后无法运行。前几次是正常的。我无法弄清楚该程序出了什么问题,最后发现该日志文件实际上占用了磁盘空间。 G的日志文件出现在实际应用程序中并不少见。在如此大小的日志文件中找到有用的信息来解决问题也是一个很大的挑战。日志的及时性有时我们无法及时发现问题。需要回到上一个日志。因此,为了保持可追溯性,我们需要在一段时间内保留日志。日志级别通常,生产环境中的日志级别高于INFO,因此我们必须确保程序仍然可以输出足够的信息,以便我们在这种情况下做出判断。日志内容编写日志时,需要注意输出适当的内容。首先,尝试使用与业务相关的描述。我们的计划是实现某种业务,因此最好能够清楚地描述当前业务流程的哪个步骤。其次,避免在日志中输出一些敏感信息,例如用户名和密码。并且,保持编码一致。如果不能保证,请尝试使用英语代替中文。这样,当我们获得日志时,不会因为看到一堆乱码而感到困惑。日志格式应该以通用日志格式包含在每个日志中的信息,包括日期,时间,日志级别,代码位置,日志内容,错误代码和其他信息。以下是工作日志文件内容的一部分:代码实现#include& lt; iostream& gt; #include& lt; afxtempl.h& gt; // CException#include& lt; ATLComTime.h& gt; // COleDateTime#include& lt; io.h& gt; #include& lt; fcntl.h& gt; #include& lt; stat.h& gt;使用命名空间std; void PrintRunningLog(char * szbuff){// AfxMessageBox(szbuff); // print int clientNumber = 1 ; CString