mirror of
https://github.com/zhwei820/learn.lianglianglee.com.git
synced 2025-11-17 06:33:49 +08:00
fix img
This commit is contained in:
@@ -160,7 +160,7 @@ function hide_canvas() {
|
||||
<p>上一课时我对数据的来源做了简单的讲解,在对可观测性的 3 个核心概念的介绍中,我首先提到的就是日志。我们知道,在应用程序、端上和传输系统中,日志无处不在。因此,这节课我将带你了解,日志为什么会是保障系统稳定性的关键。</p>
|
||||
<h3>日志功能</h3>
|
||||
<p>日志可以记录系统中硬件、软件和系统的信息,同时还可以观测系统中发生的事件。用户可以通过它来检查错误发生的原因。如下图:</p>
|
||||
<p><img src="assets/CgqCHl8qWrmAflAzAAGAn77KKSE971.png" alt="Lark20200805-100952.png" /></p>
|
||||
<p><img src="assets/CgqCHl8qWrmAflAzAAGAn77KKSE971.png" alt="png" /></p>
|
||||
<p>一般来说,日志具有以下几个功能:</p>
|
||||
<ol>
|
||||
<li><strong>便于调试</strong>:开发人员在进行应用开发时,都会在测试或本地环境中调试。添加日志可以让你感知到它进入了某个函数,执行了某些行为,甚至进入了代码层级,记录代码判断后的行为。我们一般会将日志设置为调试级别,或者在上线前将它们统一删除。</li>
|
||||
@@ -172,7 +172,7 @@ function hide_canvas() {
|
||||
</ol>
|
||||
<h3>日志级别</h3>
|
||||
<p>日志级别,这是一个为人熟知的概念。尽管大家都了解它,但我还是发现很多开发人员在用法上存在一些问题。这里我会按照从低到高的顺序,介绍其中比较关键的 4 个日志等级,同时也会指出大家在用法上存在的问题并给出我的理解。</p>
|
||||
<p><img src="assets/CgqCHl8qWvGAFSXqAADfoMRTx1w354.png" alt="Lark20200805-102122.png" /></p>
|
||||
<p><img src="assets/CgqCHl8qWvGAFSXqAADfoMRTx1w354.png" alt="png" /></p>
|
||||
<ol>
|
||||
<li><strong>debug</strong>:调试级别。在这个级别,通常会记录一些调试的内容,比如程序进入方法或函数时,其中的参数信息。debug 级别的日志会极大地影响 CPU 和磁盘 I/O 写入的性能,所以我们一般只会在测试或本机环境中使用。除了自己编写的日志,一些常见的第三方框架也会记录一些日志以方便对程序的调试。这种日志量,在生产环境中你很难抓到重点,会浪费大量的时间在日志检索,所以我并不建议在生产环境中使用。</li>
|
||||
<li><strong>info</strong>:信息级别。这个应该是开发人员最常用的日志等级了。我们一般也是通过这个日志等级完成上面提到的功能,比如信息埋点、追踪数据变化、数据分析等。虽然大家都在使用,但我发现有些时候,开发同学经常会把 info 级别当作 debug 级别,输出了很多没必要的日志内容,导致线上环境产生了大量的垃圾和重复信息,很不便于日志检索。</li>
|
||||
@@ -184,7 +184,7 @@ function hide_canvas() {
|
||||
<p>查询问题的原因时,如果实在找不到,你可以按照一定的顺序对日志逐一排查,说不定就找到原因了。找问题原因的过程其实是一个不断否定、不断排除的过程,排除了所有的不可能,剩下的就是真相。</p>
|
||||
<p>所以,在这一课时的最后,我会介绍一些常见的日志的来源,以方便你在需要逐层检索的时候,有一个整体的概念。</p>
|
||||
<p>与我们在 01 课时介绍监控数据的来源时一样,日志的来源也可以按照用户端到服务端来划分。如下图所示:</p>
|
||||
<p><img src="assets/CgqCHl8qdjSADk7DAACHGDIzLd0093.png" alt="3.png" /></p>
|
||||
<p><img src="assets/CgqCHl8qdjSADk7DAACHGDIzLd0093.png" alt="png" /></p>
|
||||
<h4>终端层</h4>
|
||||
<p>这里的终端层我指的是像网页、App、小程序这样的形式。在这一层的所有日志信息都不在我们的服务器端,而是在用户的电脑、手机中。所以我们想要收集的话,一般是通过打点的形式上传到后端服务,再记录下来。</p>
|
||||
<p>终端层更偏向用户的真实操作行为和一些异常信息的记录,比如用户当前的网络环境、系统状态、手机型号等。通过观察这部分数据,我们可以看出是哪一类用户在操作时容易产生问题,这也更加方便后端和终端的研发人员定位问题。</p>
|
||||
|
||||
Reference in New Issue
Block a user