go 日志(log4 + logrus)

zap 打印到控制台,kafka

------

log4

1.使用%v打印错误, 

log.Error("net.ListenTCP(\"tcp4\", \"%s\") error(%v)", bind, err)

type TestV struct{
	iday int64
	strInfo string
}
testV := &TestV{iday : 50, strInfo : "xiaoyu"}
log.Error("%v", *testV)

2.日志文件开关介绍

1. stdout/console 为true的时候,打开控制台开关,会在控制台打印所有级别的日志(但是不会创建文件),即便其他级别开关为false

<filter enabled="true">
    <tag>stdout</tag>
    <type>console</type>
    <!-- level is (:?FINEST|FINE|DEBUG|TRACE|INFO|WARNING|ERROR) -->
    <level>INFO</level>
</filter>

debug级别的日志里,会包含debug 级别以上的所有日志(哪怕其他级别的日志为false),当debug日志为true,info等其他级别日志为 true的时候,会创建多个日志文件

info级别的日志里,会包含info 级别以上的所有日志,为false的时候,不创建该级别日志

3.thinkboy的库,最多打印1000个文件,就不回滚了

  rotate  true 按天分隔日志

  maxsize 默认0M表示没有最大文件大小限制, 最好配置个最大大小

 

logrus

package main

import (
	"os"
	"io"
	log "github.com/sirupsen/logrus"
)

func init() {
	// 设置日志格式为json格式
	log.SetFormatter(&log.JSONFormatter{})
    log.SetFormatter(&log.TextFormatter{
		DisableColors: true,
		//FullTimestamp: true,
		TimestampFormat : "2006-01-02 15:04:05.000",  //设置精确到毫秒
	})

	f, err := os.OpenFile("logrusdemo.log", os.O_APPEND|os.O_CREATE|os.O_WRONLY, 0666)
		if err != nil {
			
			return
		}

	// 设置将日志输出到标准输出(默认的输出为stderr,标准错误)
	// 日志消息输出可以是任意的io.writer类型
	log.SetOutput(f)
	mw := io.MultiWriter(os.Stdout, f)
	log.SetOutput(mw)	
	
	//log.SetOutput(os.Stdout) //只输出到std
	// 设置日志级别为warn以上
	log.SetLevel(log.DebugLevel)
}

func main() {
	log.WithFields(log.Fields{
		"animal": "walrus",
		"size":   10,
	}).Info("A group of walrus emerges from the ocean")
}

 

 

 

 

 

 

 

 

 

 

 

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值