Documentation
¶
Overview ¶
Package appconfig 提供应用配置管理功能,支持多格式配置文件加载、线程安全的配置读写操作和日志源管理。
Index ¶
- func GetCoreWithConfig[T any](config IAppConfig) (T, error)
- type AppConfig
- func (ac *AppConfig) Bool(keyPath string) bool
- func (ac *AppConfig) Duration(key string, defaultValue ...time.Duration) time.Duration
- func (ac *AppConfig) Float64(keyPath string, defVal ...float64) float64
- func (ac *AppConfig) GetAppId() string
- func (ac *AppConfig) GetAppLog() ConfAppLogBase
- func (ac *AppConfig) GetAppName() string
- func (ac *AppConfig) GetApplication() ConfApplicationBase
- func (ac *AppConfig) GetBytes(key string, defaultValue ...[]byte) []byte
- func (ac *AppConfig) GetConfPath() string
- func (ac *AppConfig) GetContainer() *globalmanager.GlobalManager
- func (ac *AppConfig) GetCore() interface{}
- func (ac *AppConfig) GetKOANF() *koanf.Koanf
- func (ac *AppConfig) GetLogOrigin(key string) LogOrigin
- func (ac *AppConfig) GetLogOriginMap() map[string]LogOrigin
- func (ac *AppConfig) GetMiddlewareSwitch(key string) bool
- func (ac *AppConfig) GetRecover() ConfRecoverBase
- func (ac *AppConfig) GetTrace() ConfTraceBase
- func (ac *AppConfig) GetVersion() string
- func (ac *AppConfig) Initialize() IAppConfig
- func (ac *AppConfig) Int(keyPath string, defVal ...int) int
- func (ac *AppConfig) Int64(keyPath string, defVal ...int64) int64
- func (ac *AppConfig) LoadDefault(m map[string]interface{}) IAppConfig
- func (ac *AppConfig) LoadFunc(f func(config IAppConfig) IAppConfig) IAppConfig
- func (ac *AppConfig) LoadYaml(filename ...string) IAppConfig
- func (ac *AppConfig) LogOriginCMD() LogOrigin
- func (ac *AppConfig) LogOriginCache() LogOrigin
- func (ac *AppConfig) LogOriginCoreHttp() LogOrigin
- func (ac *AppConfig) LogOriginCustom(key string) LogOrigin
- func (ac *AppConfig) LogOriginDatabase() LogOrigin
- func (ac *AppConfig) LogOriginFrame() LogOrigin
- func (ac *AppConfig) LogOriginMongodb() LogOrigin
- func (ac *AppConfig) LogOriginMq() LogOrigin
- func (ac *AppConfig) LogOriginMysql() LogOrigin
- func (ac *AppConfig) LogOriginRecover() LogOrigin
- func (ac *AppConfig) LogOriginTask() LogOrigin
- func (ac *AppConfig) LogOriginTest() LogOrigin
- func (ac *AppConfig) LogOriginWeb() LogOrigin
- func (ac *AppConfig) RegisterLogOrigin(key string, customLogOrigin LogOrigin) error
- func (ac *AppConfig) SafeGet(pathname string, ...) (interface{}, error)
- func (ac *AppConfig) SafeSet(pathname string, value interface{}, ...) error
- func (ac *AppConfig) SetAppId(id string)
- func (ac *AppConfig) SetAppName(name string)
- func (ac *AppConfig) SetConfPath(path string) IAppConfig
- func (ac *AppConfig) SetVersion(version string)
- func (ac *AppConfig) String(keyPath string, defVal ...string) string
- func (ac *AppConfig) Strings(keyPath string, defVal ...[]string) []string
- type ConfAppLogBase
- type ConfApplicationBase
- type ConfRecoverBase
- type ConfTraceBase
- type IAppConfig
- type LogOrigin
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func GetCoreWithConfig ¶
func GetCoreWithConfig[T any](config IAppConfig) (T, error)
GetCoreWithConfig 获取配置核心泛型对象
Types ¶
type AppConfig ¶
type AppConfig struct {
// contains filtered or unexported fields
}
AppConfig 应用配置对象 注意:应用配置非并发安全,建议只读,仅在应用启动阶段按需可写,运行时阶段禁止任何直接写,以免引起并发数据竞争问题。有限使用安全读写方法。
func (*AppConfig) GetApplication ¶
func (ac *AppConfig) GetApplication() ConfApplicationBase
GetApplication 获取应用基础配置副本
func (*AppConfig) GetContainer ¶
func (ac *AppConfig) GetContainer() *globalmanager.GlobalManager
GetContainer 获取全局管理容器
func (*AppConfig) GetLogOrigin ¶
GetLogOrigin 按key获取日志源标识
func (*AppConfig) GetLogOriginMap ¶
GetLogOriginMap 获取日志器来源map
func (*AppConfig) GetMiddlewareSwitch ¶
func (*AppConfig) GetRecover ¶
func (ac *AppConfig) GetRecover() ConfRecoverBase
GetRecover 获取应用异常恢复配置副本
func (*AppConfig) LoadDefault ¶
func (ac *AppConfig) LoadDefault(m map[string]interface{}) IAppConfig
LoadDefault 从map加载默认配置
func (*AppConfig) LoadFunc ¶
func (ac *AppConfig) LoadFunc(f func(config IAppConfig) IAppConfig) IAppConfig
LoadFunc 自定义回调装载配置
func (*AppConfig) LoadYaml ¶
func (ac *AppConfig) LoadYaml(filename ...string) IAppConfig
LoadYaml 装载yaml文件配置
func (*AppConfig) LogOriginCMD ¶
LogOriginCMD 返回 CMD 命令脚本相关日志源标识
func (*AppConfig) LogOriginCache ¶
LogOriginCache 返回 Redis 相关日志源标识
func (*AppConfig) LogOriginCoreHttp ¶
LogOriginCoreHttp 返回底层 server 的 HTTP 请求相关日志源标识
func (*AppConfig) LogOriginCustom ¶
LogOriginCustom 按日志源map的key获取日志源标识符
func (*AppConfig) LogOriginDatabase ¶
LogOriginDatabase 返回 Database 相关日志源标识
func (*AppConfig) LogOriginFrame ¶
LogOriginFrame 返回框架自身相关日志源标识
func (*AppConfig) LogOriginMongodb ¶
LogOriginMongodb 返回 Mongodb 相关日志源标识
func (*AppConfig) LogOriginMq ¶
LogOriginMq 返回 MQ 中间件相关日志源标识
func (*AppConfig) LogOriginMysql ¶
LogOriginMysql 返回 Mysql 相关日志源标识
func (*AppConfig) LogOriginRecover ¶
LogOriginRecover 返回应用全局错误处理器相关日志源标识
func (*AppConfig) LogOriginTask ¶
LogOriginTask 返回异步任务相关日志源标识
func (*AppConfig) LogOriginTest ¶
LogOriginTest 返回 Test 相关日志源标识
func (*AppConfig) LogOriginWeb ¶
LogOriginWeb 返回 Web 业务请求相关日志源标识
func (*AppConfig) RegisterLogOrigin ¶
RegisterLogOrigin 应用启动阶段,注册自定义日志源标识,非线程安全,且不会覆盖已有key。运行阶段需要设置,使用安全读写方法。
func (*AppConfig) SafeGet ¶
func (ac *AppConfig) SafeGet(pathname string, getter func(pathname string, c IAppConfig) (interface{}, error)) (interface{}, error)
SafeGet 安全的获取配置值
func (*AppConfig) SafeSet ¶
func (ac *AppConfig) SafeSet(pathname string, value interface{}, setter func(pathname string, value interface{}, c IAppConfig) error) error
SafeSet 安全的设置配置值
func (*AppConfig) SetConfPath ¶
func (ac *AppConfig) SetConfPath(path string) IAppConfig
SetConfPath 自定义配置文件目录
type ConfAppLogBase ¶
type ConfApplicationBase ¶
type ConfRecoverBase ¶
type ConfRecoverBase struct {
// true,表示更详细的接口异常响应信息、且不受限制地打印日志堆栈
DebugMode bool
// true,默认启动打印堆栈,对于当前环境为非调式模式的生产环境时,false可关闭生产环境的日志堆栈打印,节省服务器资源
EnablePrintStack bool
// true,表示请求头部字段debugFlag生效,当等于debugFlagValue时,不论环境及enablePrintStack影响,都打印日志堆栈
EnableDebugFlag bool
// 调试标识key,http头部字段
DebugFlag string
// 调试标识value,与调试标识头部字段携带的值进行比较,相同将启动日志器打印详细堆栈
DebugFlagValue string
}
type ConfTraceBase ¶
type ConfTraceBase struct {
// 请求唯一ID
RequestID string
}
type IAppConfig ¶
type IAppConfig interface {
GetAppId() string // 获取应用唯一ID
SetAppId(id string) // 设置应用唯一ID
GetAppName() string // 获取应用名称
SetAppName(name string) // 设置应用名称
GetVersion() string // 获取应用版本
SetVersion(version string) // 设置应用版本
GetApplication() ConfApplicationBase // 获取应用基础配置副本
GetRecover() ConfRecoverBase // 获取异常恢复配置副本
GetAppLog() ConfAppLogBase // 获取日志配置副本
GetTrace() ConfTraceBase // 获取链路追踪配置副本
// Initialize 初始化AppConfig显示配置属性的方法
Initialize() IAppConfig // 初始化配置属性
// GetContainer 获取全局管理器
GetContainer() *globalmanager.GlobalManager // 获取全局管理容器
LogOriginCoreHttp() LogOrigin // HTTP请求相关日志源
LogOriginFrame() LogOrigin // 框架自身日志源
LogOriginRecover() LogOrigin // 全局错误处理器日志源
LogOriginWeb() LogOrigin // Web业务日志源
LogOriginCMD() LogOrigin // 命令脚本日志源
LogOriginTask() LogOrigin // 异步任务日志源
LogOriginCache() LogOrigin // 缓存相关日志源
LogOriginDatabase() LogOrigin // 数据库相关日志源
LogOriginMq() LogOrigin // MQ中间件日志源
LogOriginMongodb() LogOrigin // Mongodb日志源
LogOriginMysql() LogOrigin // Mysql日志源
LogOriginTest() LogOrigin // 测试相关日志源
RegisterLogOrigin(key string, customLogOrigin LogOrigin) error // 注册自定义日志源
GetLogOrigin(key string) LogOrigin // 获取指定key的日志源
LogOriginCustom(key string) LogOrigin // 获取自定义日志源
GetLogOriginMap() map[string]LogOrigin // 获取日志源map
// GetMiddlewareSwitch 获取中间件开关
GetMiddlewareSwitch(key string) bool // 获取指定中间件开关状态
SafeGet(key string, getter func(key string, byConf IAppConfig) (interface{}, error)) (interface{}, error) // 并发安全获取配置值
SafeSet(key string, val interface{}, setter func(key string, val interface{}, byConf IAppConfig) error) error // 并发安全设置配置值
LoadDefault(m map[string]interface{}) IAppConfig // 加载默认Map配置,后加载覆盖先加载的配置;可用于测试时快速设定指定的配置项
LoadYaml(filename ...string) IAppConfig // 加载yaml配置文件,后加载覆盖先加载的配置
LoadFunc(f func(IAppConfig) IAppConfig) IAppConfig // 通过回调自定义加载配置,后加载覆盖先加载的配置
SetConfPath(path string) IAppConfig // 设置配置文件路径
GetConfPath() string // 获取配置文件路径
// GetCore 获取底层核心配置对象,访问更多的配置信息
GetCore() interface{}
String(keyPath string, defVal ...string) string // 获取字符串配置
Strings(keyPath string, defVal ...[]string) []string // 获取字符串切片配置
Int64(keyPath string, defVal ...int64) int64 // 获取int64配置
Int(keyPath string, defVal ...int) int // 获取int配置
Float64(keyPath string, defVal ...float64) float64 // 获取float64配置
Bool(keyPath string) bool // 获取bool配置
Duration(key string, defaultValue ...time.Duration) time.Duration // 获取时间间隔配置
GetBytes(key string, defaultValue ...[]byte) []byte // 获取字节切片配置
}
IAppConfig 定义应用配置的接口,规范了应用配置的获取、设置、加载及相关管理方法。 该接口适用于应用启动阶段的配置初始化和运行时的只读访问,建议通过安全读写方法进行并发访问。