goutil

package
v0.1.0 Latest Latest
Warning

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

Go to latest
Published: Nov 15, 2020 License: MIT Imports: 13 Imported by: 0

Documentation

Index

Constants

View Source
const (
	ConfigPathDefault = "config/app.yml"
	AppNameDefault    = "app"
)

Variables

This section is empty.

Functions

func ConsoleFormater

func ConsoleFormater(out io.Writer, noColor bool) io.Writer

终端日志格式化输出. inefficient!!! TODO: writer日志等级控制 TODO: 子模块日志等级控制 TODO: Faster pretty logging

func FileExist

func FileExist(path string) bool

判断文件是否存在

func LogSetLevel

func LogSetLevel(lvl GoutilLogLevel)

设置全局日志等级

func NewRotateFileWriter

func NewRotateFileWriter(path, prefix string,
	rotation, expiry time.Duration) io.Writer

path: 日志路径. 空串: 不写入文件 prefix: 日志文件前缀

文件路径格式: path/<prefix_>yyMMdd_hhmm.log

rotation: 日志分割时间. expiry: 日志保留时间.

rotation/expiry .e.g:   0: 不设置
                        time.Hour*24: 一天

Types

type GoutilArgs

type GoutilArgs struct {
	Help             bool     `longOpt:"help" shortOpt:"h" brief:"show this usage"`
	GoutilConfigPath string   `longOpt:"goutil.config.path" shortOpt:"c" brief:"profile path"`
	GoutilConfigSub  []string `longOpt:"goutil.config.sub" shortOpt:"s" brief:"sub-profile names. .e.g: -s dev,intranet,debug"`
	Result           ParseResult
}

命令行参数结构体. 支持的类型:

bool
string
[]string

tag说明:

longOpt:    长选项名, 格式: --<longOpt>=<args>
shortOpt:   短选项名, 格式: -<shortOpt> <args>
brief:      简要说明

help:

仅显示usage, 不退出程序

func NewArgs

func NewArgs(visible bool) *GoutilArgs

获取命令行参数

type GoutilConfig

type GoutilConfig struct {
	*viper.Viper
	// contains filtered or unexported fields
}

配置信息结构体. 扩展Viper以支持多配置

func NewConfig

func NewConfig(file string, subs ...string) *GoutilConfig

配置初始化

file: 主配置文件. 可以是相对路径
subs: 子配置文件后缀

func (*GoutilConfig) GetAll

func (s *GoutilConfig) GetAll() map[string]interface{}

获取所有配置数据

func (*GoutilConfig) OnConfigReload

func (s *GoutilConfig) OnConfigReload(f func(fsnotify.Event))

设置主/子配置文件被修改后的处理, 只需设置一次

func (*GoutilConfig) SetConfig

func (s *GoutilConfig) SetConfig(file string)

加载主配置文件

func (*GoutilConfig) SetSubConfigs

func (s *GoutilConfig) SetSubConfigs(subs ...string)

加载一个或多个子配置.

subs: 子配置文件名. 前缀为主配置文件的`路径+文件名`, 后缀名同主配置文件

tips:

  • 加载子配置前必须先加载主配置文件.
  • 多配置数据合并规则为向左覆盖.
  • 不支持动态设置子配置

type GoutilCore

type GoutilCore struct {
	Args   *GoutilArgs
	Config *GoutilConfig
	Log    *GoutilLog
}

func NewCoreDefault

func NewCoreDefault() *GoutilCore

默认初始化 tips:

  • 命令行和配置文件同时设置时, 优先使用命令行的配置

type GoutilLog

type GoutilLog struct {
	// contains filtered or unexported fields
}

日志信息结构体

func NewLogWithWriters

func NewLogWithWriters(writers ...io.Writer) *GoutilLog

使用writer初始化日志

func (GoutilLog) Debug

func (s GoutilLog) Debug(v ...interface{})

func (GoutilLog) Error

func (s GoutilLog) Error(v ...interface{})

func (GoutilLog) Fatal

func (s GoutilLog) Fatal(v ...interface{})

func (GoutilLog) Info

func (s GoutilLog) Info(v ...interface{})

func (GoutilLog) Warn

func (s GoutilLog) Warn(v ...interface{})

type GoutilLogLevel

type GoutilLogLevel int8
const (
	// 日志等级定义
	DebugLevel GoutilLogLevel = iota
	InfoLevel
	WarnLevel
	ErrorLevel
	FatalLevel

	Disabled

	LogTimeFormat = "060102_150405.000000000"
)

type ParseResult

type ParseResult int
const (
	ParseSuccess ParseResult // 解析通过
	ParseNoArg               // 选项不需要参数
	ParseFailed              // 解析失败

)

解析结果

type SubConfig

type SubConfig struct {
	// contains filtered or unexported fields
}

子配置文件属性

Jump to

Keyboard shortcuts

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