Documentation
¶
Index ¶
Constants ¶
View Source
const ( // EnvProduction 代表生产环境 EnvProduction = "production" // ENV_TESTING 代表测试环境 EnvTesting = "testing" // EnvDevelopment 代表开发环境 EnvDevelopment = "development" // EnvKey 是环境变量服务字符串凭证 EnvKey = "gocore:env" )
View Source
const ( TraceKeyTraceID = "trace_id" TraceKeySpanID = "span_id" TraceKeyCspanID = "cspan_id" TraceKeyParentID = "parent_id" TraceKeyMethod = "method" TraceKeyCaller = "caller" TraceKeyTime = "time" )
View Source
const AppKey = "gocore:app"
View Source
const (
ConfigKey = "gocore:config"
)
View Source
const DistributedKey = "gocore:distributed"
View Source
const IDKey = "gocore:id"
View Source
const KernelKey = "gocore:kernel"
View Source
const LogKey = "gocore:log"
View Source
const TraceKey = "gocore:trace"
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type App ¶
type App interface {
// AppId 表示当前这个app的唯一id,可以用于分布式锁
AppId() string
// Version 定义当前版本
Version() string
// BaseFolder 定义项目基础地址
BaseFolder() string
// ConfigFolder 定义配置文件的地址
ConfigFolder() string
// LogFolder 定义了日志所在路径
LogFolder() string
// ProviderFolder 定义业务自己定义的服务提供者位置
ProviderFolder() string
// MiddlewareFolder 定义业务自己定义的中间件
MiddlewareFolder() string
// CommandFolder 定义业务定义的命令
CommandFolder() string
// RuntimeFolder 定义业务运行中间件信息
RuntimeFolder() string
// TestFolder 存放测试所需要的信息
TestFolder() string
AppFolder() string // 定义业务代码所在的目录,用于监控文件变更使用
// LoadAppConfig 加载新的AppConfig,key为对应的函数转为小写下划线,比如ConfigFolder => config_folder
LoadAppConfig(kv map[string]string)
}
App 定义接口
type Config ¶
type Config interface {
// IsExist 检查一个属性是否存在
IsExist(key string) bool
// Get 获取一个属性值
Get(key string) interface{}
// GetBool 获取一个bool属性
GetBool(key string) bool
// GetInt 获取一个bool属性
GetInt(key string) int
// GetFloat64 获取一个float64属性
GetFloat64(key string) float64
// GetTime 获取一个time属性
GetTime(key string) time.Time
// GetString 获取一个string属性
GetString(key string) string
// GetIntSlice 获取一个int数组属性
GetIntSlice(key string) []int
// GetStringSlice 获取一个string数组
GetStringSlice(key string) []string
// // GetStringMap 获取一个string为key,interface为val的map
GetStringMap(key string) map[string]interface{}
// GetStringMapString 获取一个string为key,string为val的map
GetStringMapString(key string) map[string]string
// GetStringMapStringSlice 获取一个string为key,数组string为val的map
GetStringMapStringSlice(key string) map[string][]string
// Load 加载配置到某个对象
Load(key string, val interface{}) error
}
Config 定义了配置文件服务,读取配置文件,支持点分割的路径读取 例如: .Get("app.name") 表示从app文件中读取name属性 建议使用 yaml 属性, https://yaml.org/spec/1.2/spec.html
type CtxFielder ¶
CtxFielder 定义了从context中获取信息的方法 因为在具体业务开发中,我们很有可能把一些通用信息,比如 trace_id 等放在 context 里,这一部分信息也会希望取出放在日志的上下文字段中。 所以这里有一个从 context 中获取日志上下文字段的方法。在 framework/contract/log.go 中定义其为 CtxFielder
type Distributed ¶
type Env ¶
type Env interface {
// AppEnv 获取当前的环境,建议分为developent/testing/production
AppEnv() string
// IsExist 判断一个环境变量是否被设置
IsExist(string) bool
// Get 获取环境变量, 如果没有设置,返回""
Get(string) string
// All 获取所有的的环境变量
All() map[string]string
}
Env 定义环境变量的获取服务
type Formatter ¶
type Formatter func(level LogLevel, t time.Time, msg string, fields map[string]interface{}) ([]byte, error)
Formatter 定义了将日志信息组织成字符串的通用方法
type Log ¶
type Log interface {
// Panic 表示会导致整个程序出现崩溃的日志信息
Panic(ctx context.Context, msg string, fields map[string]interface{})
// Fatal 表示会导致当前这个请求出现提前终止的错误信息
Fatal(ctx context.Context, msg string, fields map[string]interface{})
// Error 表示出现错误,但是不一定影响后续请求逻辑的错误信息
Error(ctx context.Context, msg string, fields map[string]interface{})
// Warn 表示出现错误,但是一定不影响后续请求逻辑的报警信息
Warn(ctx context.Context, msg string, fields map[string]interface{})
// Info 表示正常的日志信息输出
Info(ctx context.Context, msg string, fields map[string]interface{})
// Debug 表示在调试状态下打印出来的日志信息
Debug(ctx context.Context, msg string, fields map[string]interface{})
// Trace 表示最详细的信息,一般信息量比较大,可能包含调用堆栈等信息
Trace(ctx context.Context, msg string, fields map[string]interface{})
// SetLevel 设置日志级别
SetLevel(level LogLevel)
// SetCtxFielder 从context中获取上下文字段field
SetCtxFielder(handler CtxFielder)
// SetFormatter 设置输出格式
SetFormatter(formatter Formatter)
// SetOutput 设置输出管道
SetOutput(out io.Writer)
}
type LogLevel ¶
type LogLevel uint32
const ( // UnkonwnLevel 表示未知的日志级别 UnknownLevel LogLevel = iota // PanicLevel level, panic 表示会导致整个程序出现崩溃的日志信息 PanicLevel // FatalLevel level. fatal 表示会导致当前这个请求出现提前终止的错误信息 FatalLevel // ErrorLevel level. error 表示出现错误,但是不一定影响后续请求逻辑的错误信息 ErrorLevel // WarnLevel level. warn 表示出现错误,但是一定不影响后续请求逻辑的报警信息 WarnLevel // InfoLevel level. info 表示正常的日志信息输出 InfoLevel // DebugLevel level. debug 表示调试状态下打印出来的日志信息 DebugLevel // TraceLevel level. trace 表示最详细的信息,一般信息量比较大,可能包含调用堆栈的信息 TraceLevel )
type Trace ¶
type Trace interface {
WithTrace(c context.Context, trace *TraceContext) context.Context // 注册新的跟踪路由
GetTrace(c context.Context) *TraceContext // 从当前上下文中获取traceContext
NewTrace() *TraceContext // 生成一个新的traceContext
StartSpan(trace *TraceContext) *TraceContext // 为调用者生成traceContext
ToMap(trace *TraceContext) map[string]string // 将traceContext 转成map
ExtractHTTP(req *http.Request) *TraceContext // 从http.Request中获取traceContext
InjectHTTP(req *http.Request, trace *TraceContext) *http.Request // 为http设置traceContext
}
Click to show internal directories.
Click to hide internal directories.