当前位置:网站首页>golang日志库zerolog使用记录
golang日志库zerolog使用记录
2022-07-30 18:58:00 【geekqian】
效果



安装
github官方地址:https://github.com/rs/zerolog
go get -u github.com/rs/zerolog/log
配置
分享下自己用的,有特殊需求的自己看下官方文档,更全面。
需求是: 把日志同时往控制台和日志文件里输出,日志文件用日期每日分拆。
建了log包单独封装。log.go
package log
import (
"fmt"
"github.com/rs/zerolog"
"os"
"strings"
"time"
)
var Logger zerolog.Logger
func init() {
timeFormat := "2006-01-02 15:04:05"
zerolog.TimeFieldFormat = timeFormat
// 创建log目录
logDir := "./run_log/"
err := os.MkdirAll(logDir, os.ModePerm)
if err != nil {
fmt.Println("Mkdir failed, err:", err)
return
}
fileName := logDir + time.Now().Format("2006-01-02") + ".log"
logFile, _ := os.OpenFile(fileName, os.O_CREATE|os.O_WRONLY|os.O_APPEND, 0644)
consoleWriter := zerolog.ConsoleWriter{
Out: os.Stdout, TimeFormat: timeFormat}
consoleWriter.FormatLevel = func(i interface{
}) string {
return strings.ToUpper(fmt.Sprintf("| %-6s|", i))
}
consoleWriter.FormatMessage = func(i interface{
}) string {
return fmt.Sprintf("%s", i)
}
consoleWriter.FormatFieldName = func(i interface{
}) string {
return fmt.Sprintf("%s:", i)
}
consoleWriter.FormatFieldValue = func(i interface{
}) string {
return fmt.Sprintf("%s;", i)
}
multi := zerolog.MultiLevelWriter(consoleWriter, logFile)
Logger = zerolog.New(multi).With().Timestamp().Logger()
}
使用
使用时引入自己项目下的log包并且用包里的 Logger 输出。
import "myproject/log"
func SignIn(){
log.Logger.Info().
Str("website", "xx").
Str("account", account).
Msg("开始登录...")
}
边栏推荐
- ctf.show_web5
- [TypeScript]编译配置
- 积性函数
- Graphic LeetCode -- 11. Containers of most water (difficulty: medium)
- Mysql执行原理剖析
- 终端分屏工具Terminalx的使用
- The large-scale application of artificial intelligence AI products in industrial-grade mature shipping ports of CIMC World Lianda will create a new generation of high-efficiency smart ports and innova
- 《痞子衡嵌入式半月刊》 第 59 期
- Common linked list problems and their Go implementation
- [Prometheus] An optimization record of the Prometheus federation [continued]
猜你喜欢

AI Basics: Graphical Transformer

生物医学论文有何价值 论文中译英怎样翻译效果好

运营 23 年,昔日“国内第一大电商网站”黄了...

部分分类网络性能对比

一文读懂“语言模型”

Critical Reviews | A review of the global distribution of antibiotics and resistance genes in farmland soil by Nannong Zou Jianwen's group

Read the "Language Model" in one article

Codeblocks + Widgets 创建窗口代码分析

432.4 FPS 快STDC 2.84倍 | LPS-Net 结合内存、FLOPs、CUDA实现超快语义分割模型

Delay queue optimization (2)
随机推荐
Go 系统收集
荐号 | 对你有恩的人,不要请吃饭来报答
单例模式 (Singleton)
LeetCode每日一题(1717. Maximum Score From Removing Substrings)
SwiftUI iOS Boutique Open Source Project Complete Baked Food Recipe App based on SQLite (tutorial including source code)
中集世联达飞瞳全球工业人工智能AI领军者,全球顶尖AI核心技术高泛化性高鲁棒性稀疏样本持续学习,工业级高性能成熟AI产品规模应用
CCNA-ACL(访问控制列表)标准ACL 扩展ACL 命名ACL
防抖和节流有什么区别,分别用于什么场景?
C# wpf 无边框窗口添加阴影效果
AWS 控制台
Delay queue optimization (2)
Hello, my new name is "Bronze Lock/Tongsuo"
【每日一道LeetCode】——191. 位1的个数
沉浸式体验科大讯飞2022消博会“官方指定产品”
Pytorch基础--tensorboard使用(一)
MYSQL(基本篇)——一篇文章带你走进MYSQL的奇妙世界
Pytorch foundation -- tensorboard use (1)
LeetCode Exercise - Two Questions About Finding Sum of Array Elements
432.4 FPS 快STDC 2.84倍 | LPS-Net 结合内存、FLOPs、CUDA实现超快语义分割模型
DM8: Single database and single instance to build a local data guard service