go开发属于自己的日志库-日志库需求分析

go的第三方框架中已经有很多日志库了,为什么还要自己写一遍。俗话说,好记性不如烂笔头,更何况是编程语言呢。多写多练才能使自己技术进步。

一般来说,日志库支持文件写入和console显示,还有的支持写入在网络服务中,这次的日志库,只需要实现文件写入和console就可以了。

1、首先我们需要定义日志的打印级别:

  1. Debug: 调试程序,日志最详细。但是会影响程序的性能。
  2. Trace: 追踪问题。
  3. Info: 打印日志运行中比较重要的信息,比如访问日志。
  4. Warn: 警告,说明程序中出现了潜在的问题。
  5. Error: 错误,程序运行发生了错误,但是不影响程序运行。
  6. Fatal: 严重错误, 会导致程序退出。

2、日志存储的位置

  1. 直接输出到console
  2. 打印到文件

3、使用接口来实现

为什么要采用接口的方式来实现,来个例子就明白了。 新建一个log项目,新建一个file.go:

package log

import "fmt"

type FileLog struct {
}

func NewFileLog(file string) *FileLog {
    return &FileLog()
}

func (f *FileLog) LogDebug(msgstring) {
    fmt.Println(msg) // 假设这里是写入文件
}
复制代码

再新建一个console.go文件:

package main

import "fmt"

type ConsoleLog struct {
}

func NewConsoleLog() *ConsoleLog {
    return &ConsoleLog()
}

func (c *ConsoleLog) LogDebug(msgstring) {
    fmt.Println(msg)
}
复制代码

然后我们再新建一个server项目,新建一个main.go文件,调用刚才写的两个文件进行日志模拟写入打印。 比如现在我们进行日志文件的写入:

package main

import "log"

func main() {
    file := log.NewFileLog("/xxx/xx")
    file.LogDebug("This is debug log")
}

复制代码

又或者我们进行日志的打印:

package main

import "log"

func main() {
    console := log.NewConsoleLog()
    console("This is debug log")
}

复制代码

这样写的时候是看不出来有什么的问题,但是如果项目的代码累计起来了,准备进行上线,这时候你需要将之前日志打印的地方全部修改为日志文件写入,需要一个一个文件的修改,非常的浪费的时间。所以采用接口开发的日志,在扩展程序的维护上会非常的方便。下一遍我们开始开发日志库。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值