#golang日志框架zap简洁配置
##$ 前言
- zap是uber开源的一款高性能日志组件框架
##$ 配置目标
- 错误信息独立的文件记录
- 日志按天分割,一天一个文件
- 只保留近七天的日志
- 错误日志输出堆栈
源码
package base
import (
"fmt"
rotatelogs "github.com/lestrrat-go/file-rotatelogs"
"go.uber.org/zap"
"go.uber.org/zap/zapcore"
"io"
"os"
"time"
)
var Log *zap.SugaredLogger
const (
output_dir = "./logs/"
out_path = "foot.log"
err_path = "foot.err"
)
func init() {
_, err := os.Stat(output_dir)
if err != nil {
if os.IsNotExist(err) {
err := os.Mkdir(output_dir, os.ModePerm)
if err != nil {
fmt.Printf("mkdir failed![%v]\n", err)
}
}
}
// 设置一些基本日志格式 具体含义还比较好理解,直接看zap源码也不难懂
encoder := zapcore.NewConsoleEncoder(zapcore.EncoderConfig{
MessageKey: "msg",
LevelKey: "level",
TimeKey: