Go语言日志美化库,slog使用指南

发布时间:2024年01月09日

Go语言日志美化库,slog使用指南

1.slog

slog是Go 实现的一个易于使用的,易扩展、可配置的日志库

slog - github

控制台效果:

在这里插入图片描述

安装方式:

go get github.com/gookit/slog

在这里插入图片描述


2.快速开始

1、简单使用

slog 使用非常简单,无需任何配置即可使用

slog.Info("info log message")
slog.Warn("warning log message")
slog.Error("error log %s", "message")
slog.Debugf("debug %s", "message")

输出效果:

在这里插入图片描述

2.启用控制台颜色

package main

import (
	"github.com/gookit/slog"
)

func main() {
	slog.Configure(func(logger *slog.SugaredLogger) {
		f := logger.Formatter.(*slog.TextFormatter)
		f.EnableColor = true
	})

	slog.Trace("this is a simple log message")
	slog.Debug("this is a simple log message")
	slog.Info("this is a simple log message")
	slog.Notice("this is a simple log message")
	slog.Warn("this is a simple log message")
	slog.Error("this is a simple log message")
	slog.Fatal("this is a simple log message")
}

效果:

在这里插入图片描述


3.使用JSON格式

slog 也内置了 JSON 格式的 Formatter。若不特别指定,默认都是使用 TextFormatter 格式化日志记录

package main

import (
	"github.com/gookit/slog"
)

func main() {
	// use JSON formatter
	slog.SetFormatter(slog.NewJSONFormatter())

	slog.Info("info log message")
	slog.Warn("warning log message")
	slog.WithData(slog.M{
		"key0": 134,
		"key1": "abc",
	}).Infof("info log %s", "message")

	r := slog.WithFields(slog.M{
		"category": "service",
		"IP": "127.0.0.1",
	})
	r.Infof("info %s", "message")
	r.Debugf("debug %s", "message")
}

输出预览:

在这里插入图片描述


4.Text格式化formatter

默认模板:

const DefaultTemplate = "[{{datetime}}] [{{channel}}] [{{level}}] [{{caller}}] {{message}} {{data}} {{extra}}\n"
const NamedTemplate = "{{datetime}} channel={{channel}} level={{level}} [file={{caller}}] message={{message}} data={{data}}\n"

更改模板:

myTemplate := "[{{datetime}}] [{{level}}] {{message}}\n"
h := handler.NewConsoleHandler(slog.AllLevels)
h.Formatter().(*slog.TextFormatter).SetTemplate(myTemplate)
l := slog.NewWithHandlers(h)
l.Warn("warn test")
l.Error("error test")
l.Info("info test")

效果:

在这里插入图片描述

文章来源:https://blog.csdn.net/Gherbirthday0916/article/details/135476016
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。