logger

package module
v1.2.1 Latest Latest
Warning

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

Go to latest
Published: Jul 8, 2019 License: Apache-2.0 Imports: 10 Imported by: 0

README

logger

日志打印工具

当前版本
  • v1.2.1
安装

go get github.com/lhlyu/logger

日志等级
DEBUG   调试信息   0   不会打印文件和行号    默认等级
INFO    普通信息   1   不会打印文件和行号
CONFIG  配置信息   2   不会打印文件和行号
SIGN    标记信息   3   会打印文件和行号
ERROR   错误信息   4   会打印文件和行号  
FATAL   致命信息   5   会打印文件和行号并且退出程序
使用
  • 例子
import (
	"githu.com/lhlyu/logger"
)

type Demo struct {
	Name  string
	Age   int
	Money float64
}

func main() {
	Run()
}

func Run(){
	v := map[string]interface{}{
		"str":   "hah",
		"num":   200,
		"bool":  false,
		"null":  nil,
		"array": []string{"aa", "bb", "cc"},
		"map": map[string]interface{}{
			"AA": "BB",
		},
	}
	// 自定义等级,格式化打印一个map
	logger.Json(logger.LV_DEBUG, v)
	demo := Demo{"tom", 12, 900.12}
	// 标记信息,格式化打印一个struct
	logger.JsonSign(demo)
	logger.Infof("格式化打印 %s", "infof")
	logger.Debug("调试信息")
	logger.Info("普通信息")
	logger.Config("配置信息")
	logger.Sign("标记信息")
	// 打印绝对路径
	logger.SetAbs(1)
	logger.Error("错误信息")
	logger.Fatal("致命信息")
}

其他方法
logger.XXXX(v ...interface{})                         // 打印
logger.XXXXf(format string,v ...interface{})          // 格式化打印
logger.Prompt(v ...interface{})                       // 提示信息
logger.Print(lv int,v ...interface{})                 // 自定义等级
logger.Printf(lv int,format string,v ...interface{})  // 自定义等级格式化
logger.Json(lv int,v interface{})                     // 自定义等级格式化打印对象
logger.JsonSign(v interface{})                        // 标记信息等级格式化打印对象
 
logger.NewLogger(lv int, fldir string) *Logger        // New
logger.SetLogger(logger *Logger)                      // 设置自己的日志管理器
logger.SetColor(open int)                             // 设置颜色打印,默认(open=0)是开启
logger.SetLevel(level int)                            // 设置日志等级,默认是 0 
logger.SetAbs(abs int)                                // 设置打印文件位置是否使用绝对路径,默认0,不使用 
注意
  • 有的终端是不支持色彩打印的,所以如果需要设置不打印色彩提示,可以取消色彩
  • 文本日志是默认不开启色彩
logger.SetColor(1)  // 关闭色彩
logger.SetColor(0)  // 开启色彩,这是默认设置
  • 如果go mod下载不了依赖 golang.org/x/sys,请在go.mod文件下加上这句
replace golang.org/x/sys => github.com/golang/sys latest
参考
  1. https://github.com/fatih/color
  2. https://github.com/mattn/go-isatty
  3. github.com/hokaccha/go-prettyjson

Documentation

Index

Constants

View Source
const (
	ColorFormat     = "\x1b[%dm%s\x1b[0m"   // 普通格式
	ColorFormatBold = "\x1b[%d;1m%s\x1b[0m" // 加粗格式
)

输出格式

View Source
const (
	Black   = 30
	Red     = 31
	Green   = 32
	Yellow  = 33
	Blue    = 34
	Magenta = 35 // 品红
	Cyan    = 36 // 青色
	White   = 37
)

字体色

View Source
const (
	BlackBackground   = 40
	RedBackground     = 41
	GreenBackground   = 42
	YellowBackground  = 43
	BlueBackground    = 44
	MagentaBackground = 45 // 品红
	CyanBackground    = 46 // 青色
	WhiteBackground   = 47
)

背景色

View Source
const (
	LV_DEBUG = iota
	LV_INFO
	LV_CONFIG
	LV_SIGN
	LV_ERROR
	LV_FATAL
)
View Source
const (
	SIGN_DEBUG  = "[debug ] "
	SIGN_INFO   = "[info  ] "
	SIGN_CONFIG = "[config] "
	SIGN        = "[sign  ] "
	SIGN_ERROR  = "[error ] "
	SIGN_FATAL  = "[fatal ] "
)
View Source
const LOG_PREFIX = "LOGGER "
View Source
const LOG_SIGN = ">>> "

Variables

This section is empty.

Functions

func Config

func Config(v ...interface{})

func Configf

func Configf(format string, v ...interface{})

func Debug

func Debug(v ...interface{})

func Debugf

func Debugf(format string, v ...interface{})

func Error

func Error(v ...interface{})

func Errorf

func Errorf(format string, v ...interface{})

func Fatal

func Fatal(v ...interface{})

func Fatalf

func Fatalf(format string, v ...interface{})

func GetColorize

func GetColorize(colorCode int, s string) string

func GetColorizeFormat

func GetColorizeFormat(colorFormat string, colorCode int, s string) string

func Info

func Info(v ...interface{})

func Infof

func Infof(format string, v ...interface{})

func Json

func Json(lv int, v interface{})

func JsonSign

func JsonSign(v interface{})

func Print

func Print(lv int, v ...interface{})

func Printf

func Printf(lv int, format string, v ...interface{})

func Prompt

func Prompt(v ...interface{})

func Promptf

func Promptf(format string, v ...interface{})

func SetAbs

func SetAbs(abs int)

设置文件定位是否开启绝对路径,0 = 不开启 其他 = 开启

func SetColor

func SetColor(open int)

设置是否开启颜色, 0 = 开启 其他 = 不开启

func SetLevel

func SetLevel(level int)

设置等级

func SetLogger

func SetLogger(logger *Logger)

设置日志记录器

func Sign

func Sign(v ...interface{})

func Signf

func Signf(format string, v ...interface{})

Types

type Logger

type Logger struct {
	Lv int // 日志等级

	Mod   int // 0 - 控制台   1 - 文本
	Color int // 0 - 颜色打印 1 - 去掉颜色
	Abs   int // 0 - 相对路径 1 - 绝对路径
	// contains filtered or unexported fields
}

func NewLogger

func NewLogger(lv int, fldir string) *Logger

Jump to

Keyboard shortcuts

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