说说程序中的日志

本文涉及的产品
日志服务 SLS,月写入数据量 50GB 1个月
简介: 大家在写程序时,如何处理与日志相关的事宜。程序中的日志应该怎么写,以下是我的经验与分享     日志一般用于记录程序运行信息,从而使开发者方便开发调试,了解生产环境执行情况。 在我看来程序中的日志主要分为两种:异常日志和非异常日志。

      大家在写程序时,如何处理与日志相关的事宜。程序中的日志应该怎么写,以下是我的经验与分享

    日志一般用于记录程序运行信息,从而使开发者方便开发调试,了解生产环境执行情况。
在我看来程序中的日志主要分为两种:异常日志和非异常日志。
那什么样的日志属于异常日志

异常日志

 

异常日志可以通过记录日志的地方判断,一般异常日志都涉及到异常捕获,我在写程序时两个地方必定会加异常捕获,而异常捕获是记录异常日志的前提。
    1 与数据持久层相关的逻辑
    这部分逻辑涉及到数据库访问,可能出现的问题有数据库连接不存在,开发中很容易出现的数据库连接串写错,数据库用户名密码不合法。或者数据库之间混淆,sql错误,数据连接超时,甚至有数据库已崩溃的情况
    2 需要操作磁盘文件,特别是在服务器断创建文件时,应该特别注意。写文件涉及到程序运行账户必须有写权限,而程序运行账户很可能不具备写权限。我曾经遇到过一种情况:只有程序运行日志记录成功后,程序才能启动,当时又是wcf服务程序,排查原因,相当费劲。
上述这个问题,程序设计相当不合理,不应该把日志记录和程序启动耦合在一起,但是如果能够捕获异常记录日志,并返回相应的提示,程序会健壮很多。
下面引出了另一个问题,日志记录的形式和位置
下面是几种不同的日志记录形式。

按日期依次记录,每个文件夹下可以按小时生成txt文件,这样记录的日志清晰可读,排查寻找问题比较容易

 

另一种是使用log4等日志组件,直接写成一个log.txt


由于程序抓错倾向于在接近用户的层次,在传统的三层模式中即webform.cs文件中。

下面说说另一种日志,非异常日志

非异常日志

 

     非异常日志用的最普遍的地方就是windows服务,windows服务安装程序比较复杂,大多通过控制台命令安装,伴随系统一起启动。
主要执行多数据库,多系统之间的数据同步,或者异步存储,订单状态改变等后台系统任务。开发者往往根据日志来观察程序的运行情况,这种情况下,运行日志越详细越好。

如果你觉得我的文章对你有所帮助,请点 【推荐】

推荐阅读

一步一步实现网站的多语言版本

我的程序优化-尽量减少数据库连接操作


 

相关实践学习
日志服务之使用Nginx模式采集日志
本文介绍如何通过日志服务控制台创建Nginx模式的Logtail配置快速采集Nginx日志并进行多维度分析。
目录
相关文章
|
4月前
|
Linux API
在Linux中,程序产生了库日志虽然删除了,但磁盘空间未更新是什么原因?
在Linux中,程序产生了库日志虽然删除了,但磁盘空间未更新是什么原因?
|
5月前
|
存储 弹性计算 监控
函数计算产品使用问题之程序正常运行,但无法在 /home/lang_serve_severless_log 下找到日志文件,该如何排查
函数计算产品作为一种事件驱动的全托管计算服务,让用户能够专注于业务逻辑的编写,而无需关心底层服务器的管理与运维。你可以有效地利用函数计算产品来支撑各类应用场景,从简单的数据处理到复杂的业务逻辑,实现快速、高效、低成本的云上部署与运维。以下是一些关于使用函数计算产品的合集和要点,帮助你更好地理解和应用这一服务。
支付系统34----支付成功异步通知,处理重复通知,我们在我们程序当中找到处理订单的processOrder方法,我们要在更新订单状态和记录日志之前,先处理重复通知
支付系统34----支付成功异步通知,处理重复通知,我们在我们程序当中找到处理订单的processOrder方法,我们要在更新订单状态和记录日志之前,先处理重复通知
|
开发框架 .NET 测试技术
.NET Core 日志记录程序和常用日志记录框架
本文主要内容为.NET Core的日志记录程序和常使用的日志记录框架的简单使用 首先,打开VS2019新建一个ASP.NET Core Web Api项目,项目创建好后会有一个集成好的天气预报的类和控制器,接下来,我们的方法就在天气控制器里完成。
84 0
|
网络协议 Android开发 虚拟化
Android Studio无法运行程序调试程序出现Unable to connect to ADB.Check the Event Log for possible issues.Verify th
Android Studio无法运行程序调试程序出现Unable to connect to ADB.Check the Event Log for possible issues.Verify th
104 0
Android Studio无法运行程序调试程序出现Unable to connect to ADB.Check the Event Log for possible issues.Verify th
|
存储 消息中间件 Java
SpringBoot程序日志极简教程
Slf4j简介 Java的简单日志记录外观(Simple Logging Facade for Java )可作为各种日志记录框架(例如java.util.logging,logback,log4j,log4j2)的简单外观或抽象,允许终端用户在开发时插拔所需的日志记录框架。简单来说,Slf4j定义了一种规范,java程序在记录日志时候的规范,这种规范是一个空壳,在实际开发中需要集成具体的日志框架来干活,这种具体的日志框架需要满足一些标准:符合Slf4j定义的标准;能够提供日志记录的功能。 Logback简介 一个“可靠、通用、快速而又灵活的Java日志框架”。logba
79 0
SpringBoot程序日志极简教程
|
C++
VS-2019-.NET-C#使用log4net打日志,程序日志记录
VS-2019-.NET-C#使用log4net打日志,程序日志记录
166 0
|
存储 Java 应用服务中间件
日志框架以及如何使用LogBack记录程序
日志框架以及如何使用LogBack记录程序
130 0
|
分布式计算
有一个日志文件visitlog.txt,其中记录了用户访问网站的日期和访问的网站地址信息,每行一条记录。要求编写mapreduce程序完成以下功能: 1、 将不同访问日期的访问记录分配给不同的red
有一个日志文件visitlog.txt,其中记录了用户访问网站的日期和访问的网站地址信息,每行一条记录。要求编写mapreduce程序完成以下功能: 1、 将不同访问日期的访问记录分配给不同的red
144 0
|
存储 缓存 Go
第四十二章 构建数据库应用程序 - 在ISCLOG中启用日志
第四十二章 构建数据库应用程序 - 在ISCLOG中启用日志
117 0
下一篇
无影云桌面