k3log

package module
v0.0.0-...-e5af624 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jun 25, 2019 License: Apache-2.0 Imports: 2 Imported by: 0

README

k3log

一款开箱即用且高效,快捷,安全的golang日志,基于uber zap
实现日志切割,日志过期时间,动态改变日志的打印级别

导航

  1. 介绍
  2. 日志级别
  3. 设置参数
  4. 使用方法
  5. 动态改变日志的打印级别
  6. 效率
  7. Dump的使用
介绍

取名Three King Log

  • 由uber zap 日志扩展而来
  • 实现分隔,异步,动态级别打印,json/txt
  • 以key-value形式打印日志,适合项目里使用
  • 加入Dump打印数据详细类型结构,融入go-spew调度利器
文档参考
安装
go get -u github.com/ThreeKing2018/k3log
日志级别
  • Debug 调度使用, 程序继续运行
  • Info 提示使用, 程序继续运行
  • Warn 警告使用, 程序继续运行
  • Error 错误使用, 程序继续运行
  • Panic 恐慌的,退出函数,不会退出应用唾弃,会执行defer
  • Fatal 致命的,退出应用程序,不会执行defer,因为底层多一个os.Exit
  • Dump 打印数据类型,方便调度,级别为:Debug

TOP

设置参数
  • WithFilename 日志保存路径
  • WithLogLevel 日志记录级别
  • WithMaxSize 日志分割的尺寸 MB
  • WithMaxAge 分割日志保存的时间 day
  • WithStacktrace 记录堆栈的级别
  • WithIsStdOut 是否标准输出console输出
  • WithProjectName 项目名称
  • WithLogType 日志类型,普通 或 json

TOP

使用方法
  • 简单使用
Debug("debug日志", 1)
Info("info日志", 2)
Warn("warn日志", 3)
Error("error日志", 4)
Panic("panic", 5)
Fatal("fatal", 6)
Dump("dump", 7)

TOP

  • 开发使用
NewDevelopment("dev", "log.txt")
defer Sync()
Info("Info", "dev")
  • 开发使用2
SetLogger(conf.WithIsStdOut(true),
		conf.WithLogType(conf.LogJsontype))
	Debug("self test", 100)
  • 开发使用3
SetLogger(conf.WithLogType(conf.LogJsontype), //打印json格式
    conf.WithProjectName("Zelog日志"),          //设置项目名称
    conf.WithFilename("log.txt"),             //设置输出文件名,或输出的路径
Debug("debug日志", 1)
Info("info日志", 2)
Warn("warn日志", 3)
Error("error日志", 4)
Panic("panic", 5)
Fatal("fatal", 6)

TOP

  • 生产使用
NewProducttion("pro", "log.txt")
defer Sync()
Error("pro", "ok")

  • 生产使用2
SetLogger(conf.WithLogType(conf.LogJsontype), //打印json格式
		conf.WithProjectName("Zelog日志"),          //设置项目名称
		conf.WithFilename("log.txt"),             //设置输出文件名,或输出的路径
		conf.WithLogLevel(conf.InfoLevel),        //设置日志级别,默认debug
		conf.WithMaxAge(30),                      //日志保存天数,默认30天
		conf.WithMaxSize(512),                    //多少M进行分隔日志,默认100M
		conf.WithIsStdOut(false)) //是否同时输出控制台
defer Sync()
Debug("debug日志", 1)
Info("info日志", 2)
Warn("warn日志", 3)
Error("error日志", 4)
Panic("panic", 5)
Fatal("fatal", 6)

TOP

动态改变日志的打印级别
Info("aa", 11)
SetLogLevel(conf.InfoLevel)
Info("info", 100)
Warn("warn", 200)
SetLogLevel(conf.ErrorLevel)
Info("info-100", 300) //这个无法输出,因为上面设置日志级别为:error
Error("err", 400)
效率
runtime.GOMAXPROCS(runtime.NumCPU())
BenchmarkInfo-4   	  100000	     10776 ns/op
BenchmarkInfo-4   	  200000	     12442 ns/op

TOP

Dump的使用
  • 级别为:debug
type s struct {
    Name string
    Age int
}
SetLogger(conf.WithIsStdOut(true))
Dump("name", "dump", "s", s{Name:"k3", Age: 2})

//{"name": "(string) (len=4) \"dump\"", "s": "(k3log.s) { Name: (string) (len=2) \"k3\", Age: (int) 2}"}

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func Debug

func Debug(keysAndValues ...interface{})

日志等级 调试时使用

func Dump

func Dump(keysAndValues ...interface{})

日志等级 详细结构类型,调试利器

func Error

func Error(keysAndValues ...interface{})

日志等级 错误时使用

func Fatal

func Fatal(keysAndValues ...interface{})

日志等级 致命时使用

func Info

func Info(keysAndValues ...interface{})

日志等级 提示时使用

func NewDevelopment

func NewDevelopment(projectName, filePath string)

快捷使用,开发使用

func NewProduction

func NewProduction(projectName, filePath string)

快捷使用,生产使用

func Panic

func Panic(keysAndValues ...interface{})

日志等级 恐慌时使用

func SetLogLevel

func SetLogLevel(level conf.Level)

目前只有zap生效

func SetLogger

func SetLogger(opts ...conf.Option)

设置

func Sync

func Sync()

日志同步写入 目前只有zap生效

func Warn

func Warn(keysAndValues ...interface{})

日志等级 警告时使用

Types

type Loger

type Loger interface {
	//key value
	Debug(...interface{})   //调试的
	Info(...interface{})    //提示的
	Warn(...interface{})    //警告的
	Error(...interface{})   //错误的
	Panic(...interface{})   //恐慌的
	Fatal(...interface{})   //致命的
	Dump(...interface{})    //详细结构类型,调试利器
	Sync()                  //同步
	SetLogLevel(conf.Level) //可以随机设置日志级别的
}

定义接口

Directories

Path Synopsis
plugins

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL