Golang 日志接口应用实战

阅读目录

  • 日志库需求分析
    • 1 日志库产生的背景
    • 2 日志打印级别设置
    • 3 日志存储的位置
    • 4 日志库接口设计
    • 5 日志库设计
    • 6 文件日志格式 demo
      • 1 导入获取目录结构包,打印目录结构
      • 2 新建获取目录结构包
      • 3 新建文件日志包
      • 4 新建用户应用引入文件日志包打印日志
      • 5 新建终端日志包
      • 6 新建用户应用引入文件日志包打印日志
      • 7 使用接口解决以上日志没有使用接口产生的问题
      • 7.1 使用包打印入职
      • 7.2 定义打印日志接口规范文件
      • 7.3 改造终端日志打印
      • 7.4 改造文件日志打印
  • 自定义日志接口
    • 文件日志库原型实现
      • 1 环境初始化模块并创建工作空间
      • 2 自定义日志库的接口规范
      • 3 定义文件对象实现接口
      • 4 定义日志级别常量
      • 5 单元测试
      • 6 two 模块打印目录结构
    • 文件日志库实现
      • 1 格式化日期添加打印日志
      • 2 常量转字符串
      • 3 获取文件当前行号
      • 4 日志文件写入时间、日志级别、文件名、行号、函数名、报错的内容
      • 5 单元测试打印测试
      • 6 公用代码抽离成封装函数
      • 7 单元测试打印
      • 8 完整代码
      • 8.1 日志库的接口规范
      • 8.2 文件(对象就是结构体)实现接口
      • 8.3 日志错误级别常量文件
      • 8.4 获取文件当前行号
      • 8.5 单元测试原件
    • 控制台日志库实现
      • 1 文件日志公用内容抽离封装方法,改成函数供文件和终端一块使用此函数
      • 2 新建控制台(对象就是结构体)实现接口文件
      • 3 修改文件(对象就是结构体)实现接口文件
      • 4 单元测试打印输出日志
    • 日志库易用性封装
      • 1 工作空间引入模块
      • 2 模块引入日志库包终端打印日志
      • 3 每隔一秒文件写入一条日志
      • 4 通用函数将字符串转为日志级别数字
      • 5 封装日志包,模块直接通过包名里的封装函数,即可使用日志无需引入全局变量
      • 6 完整代码
      • 6.0 日志规范接口文件
      • 6.1 封装日志包
      • 6.2 文件接口实现文件
      • 6.3 控制台接口实现文件
      • 6.4 获取错误文件及行号文件
      • 6.5 常量文件日志级别
      • 6.6 单元测试文件
      • 6.7 模块应用日志包
      • 6.8 打印预览
  • 日志库优化(异步写日志)
    • 1 定义结构体存储日志的数据
    • 2 文件结构体添加管道字段指定存储日志结构体
    • 3 文件初始化存储日志的数据
    • 4 文件配置读取,转化
    • 5 公共方法返回报错信息
    • 6 文件调用公共返回错误信息写入管道
    • 7 控制台修改代码输出终端打印
    • 8 文件启动协程异步写入日志
    • 9 定义结构体存储日志的数据添加区分写入 .log 还是 .log.wf 类型的文件
    • 10 获取管道内容,异步写入日志方法
    • 11 常量文件定义日志文件拆分方式
    • 12 日志结构体添加拆分日志的类型和大小字段
    • 13 初始化文件结构体函数读取拆分日志的类型,是大小拆分还是文件拆分
    • 14 检测文件拆分使用方式的方法
    • 15 文件结构体保存上次日志拆分的小时数字段
    • 16 初始化文件结构体写入时间
    • 17 日志大小切割方式方法
    • 18 日志时间切割方法
    • 19 引入日志包后,应用示例
    • 20 预览

日志库需求分析

1 日志库产生的背景

  • 程序运行是个黑盒。
  • 而日志是程序运行的外在表现。
  • 通过日志,可以知道程序的健康状态。

2 日志打印级别设置

  • A. Debug级别:用来调试程序,日志最详细。对程序性能影响比较大。
  • B. Trace级别:用来追踪问题。
  • C. Info级别:打印程序运行过程中比较重要的信息,比如访问日志。
  • D. Warn级别:警告日志,说明程序运行出现了潜在的问题。
  • E. Error级别:错误日志,程序运行发生错误,但不影响程序运行。
  • F. Fatal级别:严重错误日志,发生的错误会导致程序退出。

3 日志存储的位置

A. 直接输出到控制台。
B. 打印到文件里。
C. 直接打印到网络中,比如 kafka。

4 日志库接口设计

为什么使用接口?

A. 定义日志库的规范或者标准。
B. 易于可扩展性。
C. 利于程序的可维护性。

5 日志

你可能感兴趣的:(golang,java,开发语言)