(go语言从入门到精通)(go 语言入门)

日志是程序运行过程的记录,日志监视应用程序执行的健康状况、反馈问题及寻找问题。

举个例子

(go语言从入门到精通)(go 语言入门)
(go语言从入门到精通)(go 语言入门)

可以看到执行结果有3部分组成,即执行日期、时间和执行结果。

致命错误退出

(go语言从入门到精通)(go 语言入门)
(go语言从入门到精通)(go 语言入门)

12行:通过errors.New()定义了一个error类型的变量。

13行:Fatal相当于Print()后面跟着对os.Exit(1)的调用,连贯起来就是先打印输出,然后程序退出。

把日志写入文件中

(go语言从入门到精通)(go 语言入门)
(go语言从入门到精通)(go 语言入门)

11行:通过OpenFile打开1个文件,os.O_APPEND|os.O_CREATE|os.O_RDWR代表打开文件的模式,可以追加、新建、可读可写,然后0666是权限,和linux的文件权限是相同的。如果成功,返回的File上的方法可以用于I/O。如果有错误,它的类型将是*PathError。

16行:defer file.Close()的目的是:关闭文件。

17行:通过log.SetOutput(file)设置标准记录器的输出目标,参数要求是w io.Writer类型。

执行后,在当前文件夹的生成running.log日志文件

(go语言从入门到精通)(go 语言入门)

但是这样操作存在一个问题,要么显示在控制台,要么显示在日志文件中,有没有办法能够让控制台实时显示,日志文件也记录呢?

(go语言从入门到精通)(go 语言入门)

18行:定义writer变量,作为写入器,将os.Stdout和file作为参数传入写入器,返回值是1个Writer。

19行:通过log.SetOutput(writer)设置标准记录器的输出目标。

(go语言从入门到精通)(go 语言入门)

可以看到,控制台和日志文件是同步的,内容也是一样的。

声明:我要去上班所有作品(图文、音视频)均由用户自行上传分享,仅供网友学习交流,版权归原作者tinygo所有,原文出处。若您的权利被侵害,请联系删除。

本文标题:(go语言从入门到精通)(go 语言入门)
本文链接:https://www.51qsb.cn/article/m9cs4.html

(0)
打赏微信扫一扫微信扫一扫QQ扫一扫QQ扫一扫
上一篇2023-06-21
下一篇2023-06-21

你可能还想知道

发表回复

登录后才能评论