golang:实现一个简单的日志库 日志信息按日期切割存放在文件中

本文介绍了如何在Golang中实现一个简单的日志库,日志信息会根据日期自动切割并存储到不同的文件中。内容包括定义日志级别、log接口的设定,以及两种输出方式:控制台输出和按日期区分的日志文件存储。通过测试代码展示了日志功能的正确性和级别过滤效果。
摘要由CSDN通过智能技术生成

1、定义日志级别

const (
	DEBUG=iota
	TRACE
	INFO
	WARNING
	ERROR
	FATAL
)

2、定义log接口

// 定义log接口
type Log interface {
   
	Debug(msg string)
	TRACE(msg string)
	INFO(msg string)
	WARNING(msg string)
	ERROR(msg string)
	FATAL(msg string)
}

输出方式一:将日志记录在控制台

实现log接口中的方法。
1、根据调用的级别输出,将日志级别(int)转为string类型,例如DEBUG(int)实际值为0,转为"DEBUG"(string)
2、在控制台输入,输入的时候带上日期

import (
	"fmt"
	"runtime"
	"time"
)

// 当前日志级别
type Logger struct {
   
	Level int8
}

// 构造方法
func NewLogger(level int8) Logger {
   
	return Logger{
   Level: level,}
}

// 设置当前日志级别
func (this *Logger)SetLogger(level int8) {
   
	this.Level=level
}

// 实现Log接口中的方法
func (this Logger)Debug(msg string) {
   
	this.printLog(DEBUG,msg)
}
func (this Logger)TRACE(msg string) {
   
	this.printLog(TRACE,msg)
}
func (this Logger)INFO(msg string) {
   
	this.printLog(INFO,msg)
}
func (this Logger)WARNING(msg string) {
   
	this.printLog(WARNING,msg)
}
func (this Logger)ERROR(msg string) {
   
	this.printLog(ERROR,msg)
}
func (this Logger)FATAL(msg string) {
   
	this.printLog(FATAL,msg)
}

// 根据日志级别输出日志信息:日志输出到控制台
func (this Logger)printLog(level int8,msg string) {
   
	var l string
	switch level {
   
	case DEBUG:l=
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值