18.rust日志库使用介绍

一、前言

日志对于开发大型应用来说是非常重要的组成部分,因为它可以帮助开发者定位错误。

毕竟大部分应用开发出来都是给其它用户使用的,一旦应用在用户电脑上触发了某个bug导致崩溃,你很难直接看出来bug的位置,这个时候就是日志发挥作用的时候了。

二、认识日志

日志听起来比较高级,实际上是一个非常简单的东西,就是打印字符而已。

比如最简单的日志,我们完成可以直接使用println宏实现:

println!("info:main function")

只不过这样做缺陷太大,首先就是大多数时候我们都是希望可以分情况打印不同日志的。

比如下面这种情况:

fn divi(a: i32, b: i32) -> i32 {
    println!("info:执行了divi函数");
    if b == 0 {
        println!("error:参数不能为0");
        return 0;
    }
    return a / b;
}

该函数中写了两个打印语句,第一条只是一个提示信息,表明该函数被执行了,所以大多数时候我们可能并不需要它一直被打印,只是在某些特殊情况下,需要判断它是否被程序执行了才需要它打印一下看看情况。

而第二个打印语句就比较重要了,因为一旦程序执行到这个位置就代表这个函数执行出现了错误,这种情况按理来说只要出现了就一定需要被打印出来,方便开发者快速定位错误的位置。

为了满足这样的需求,正如我代码中写的infoerror标识字符串一样,rust官方就为日志定义了五个日志级别:

  1. error:错误
  2. warn:警告
  3. info:提示
  4. debug:调试
  5. trace:跟踪

事实上并不仅仅只是rust中的日志,其它语言日志库基本都是这样做的。

上面五个等级从上到下级别依次递减,看其名字其实你大概也能看出这些日志应该在哪些地方被使用了。

三、基本使用

为了方便使用,rust官方就推出了一个标准的日志库log

作者:余识
全部文章:0
会员文章:0
总阅读量:0
c/c++pythonrustJavaScriptwindowslinux