appconfig

package
v0.0.1 Latest Latest
Warning

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

Go to latest
Published: Sep 23, 2025 License: MIT Imports: 12 Imported by: 0

Documentation

Overview

Package appconfig 提供应用配置管理功能,支持多格式配置文件加载、线程安全的配置读写操作和日志源管理。

Index

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 NewAppConfig

func NewAppConfig(delim ...string) *AppConfig

NewAppConfig new app config

func (*AppConfig) Bool

func (ac *AppConfig) Bool(keyPath string) bool

Bool 获取bool配置

func (*AppConfig) Duration

func (ac *AppConfig) Duration(key string, defaultValue ...time.Duration) time.Duration

Duration 获取带默认值的时间间隔配置

func (*AppConfig) Float64

func (ac *AppConfig) Float64(keyPath string, defVal ...float64) float64

Float64 获取带默认值的float64配置

func (*AppConfig) GetAppId

func (ac *AppConfig) GetAppId() string

GetAppId 应用ID

func (*AppConfig) GetAppLog

func (ac *AppConfig) GetAppLog() ConfAppLogBase

GetAppLog 获取应用日志器配置副本

func (*AppConfig) GetAppName

func (ac *AppConfig) GetAppName() string

GetAppName 应用名称

func (*AppConfig) GetApplication

func (ac *AppConfig) GetApplication() ConfApplicationBase

GetApplication 获取应用基础配置副本

func (*AppConfig) GetBytes

func (ac *AppConfig) GetBytes(key string, defaultValue ...[]byte) []byte

GetBytes 获取带默认值的字节切片配置

func (*AppConfig) GetConfPath

func (ac *AppConfig) GetConfPath() string

GetConfPath 获取当前配置文件目录

func (*AppConfig) GetContainer

func (ac *AppConfig) GetContainer() *globalmanager.GlobalManager

GetContainer 获取全局管理容器

func (*AppConfig) GetCore

func (ac *AppConfig) GetCore() interface{}

GetCore 获取底层配置对象

func (*AppConfig) GetKOANF

func (ac *AppConfig) GetKOANF() *koanf.Koanf

GetKOANF 获取底层配置对象

func (*AppConfig) GetLogOrigin

func (ac *AppConfig) GetLogOrigin(key string) LogOrigin

GetLogOrigin 按key获取日志源标识

func (*AppConfig) GetLogOriginMap

func (ac *AppConfig) GetLogOriginMap() map[string]LogOrigin

GetLogOriginMap 获取日志器来源map

func (*AppConfig) GetMiddlewareSwitch

func (ac *AppConfig) GetMiddlewareSwitch(key string) bool

func (*AppConfig) GetRecover

func (ac *AppConfig) GetRecover() ConfRecoverBase

GetRecover 获取应用异常恢复配置副本

func (*AppConfig) GetTrace

func (ac *AppConfig) GetTrace() ConfTraceBase

GetTrace 获取应用链路配置副本

func (*AppConfig) GetVersion

func (ac *AppConfig) GetVersion() string

GetVersion 应用版本

func (*AppConfig) Initialize

func (ac *AppConfig) Initialize() IAppConfig

Initialize 初始化配置属性参数

func (*AppConfig) Int

func (ac *AppConfig) Int(keyPath string, defVal ...int) int

Int 获取带默认值的int配置

func (*AppConfig) Int64

func (ac *AppConfig) Int64(keyPath string, defVal ...int64) int64

Int64 获取带默认值的int64配置

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

func (ac *AppConfig) LogOriginCMD() LogOrigin

LogOriginCMD 返回 CMD 命令脚本相关日志源标识

func (*AppConfig) LogOriginCache

func (ac *AppConfig) LogOriginCache() LogOrigin

LogOriginCache 返回 Redis 相关日志源标识

func (*AppConfig) LogOriginCoreHttp

func (ac *AppConfig) LogOriginCoreHttp() LogOrigin

LogOriginCoreHttp 返回底层 server 的 HTTP 请求相关日志源标识

func (*AppConfig) LogOriginCustom

func (ac *AppConfig) LogOriginCustom(key string) LogOrigin

LogOriginCustom 按日志源map的key获取日志源标识符

func (*AppConfig) LogOriginDatabase

func (ac *AppConfig) LogOriginDatabase() LogOrigin

LogOriginDatabase 返回 Database 相关日志源标识

func (*AppConfig) LogOriginFrame

func (ac *AppConfig) LogOriginFrame() LogOrigin

LogOriginFrame 返回框架自身相关日志源标识

func (*AppConfig) LogOriginMongodb

func (ac *AppConfig) LogOriginMongodb() LogOrigin

LogOriginMongodb 返回 Mongodb 相关日志源标识

func (*AppConfig) LogOriginMq

func (ac *AppConfig) LogOriginMq() LogOrigin

LogOriginMq 返回 MQ 中间件相关日志源标识

func (*AppConfig) LogOriginMysql

func (ac *AppConfig) LogOriginMysql() LogOrigin

LogOriginMysql 返回 Mysql 相关日志源标识

func (*AppConfig) LogOriginRecover

func (ac *AppConfig) LogOriginRecover() LogOrigin

LogOriginRecover 返回应用全局错误处理器相关日志源标识

func (*AppConfig) LogOriginTask

func (ac *AppConfig) LogOriginTask() LogOrigin

LogOriginTask 返回异步任务相关日志源标识

func (*AppConfig) LogOriginTest

func (ac *AppConfig) LogOriginTest() LogOrigin

LogOriginTest 返回 Test 相关日志源标识

func (*AppConfig) LogOriginWeb

func (ac *AppConfig) LogOriginWeb() LogOrigin

LogOriginWeb 返回 Web 业务请求相关日志源标识

func (*AppConfig) RegisterLogOrigin

func (ac *AppConfig) RegisterLogOrigin(key string, customLogOrigin LogOrigin) error

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) SetAppId

func (ac *AppConfig) SetAppId(id string)

SetAppId 设置应用ID

func (*AppConfig) SetAppName

func (ac *AppConfig) SetAppName(name string)

SetAppName 设置应用名称

func (*AppConfig) SetConfPath

func (ac *AppConfig) SetConfPath(path string) IAppConfig

SetConfPath 自定义配置文件目录

func (*AppConfig) SetVersion

func (ac *AppConfig) SetVersion(version string)

SetVersion 设置应用版本

func (*AppConfig) String

func (ac *AppConfig) String(keyPath string, defVal ...string) string

String 获取带默认值的字符串配置

func (*AppConfig) Strings

func (ac *AppConfig) Strings(keyPath string, defVal ...[]string) []string

Strings 获取带默认值的字符串切片配置

type ConfAppLogBase

type ConfAppLogBase struct {
	// 日志文件名
	Filename string
	// 日志级别
	Level string
	// 是否开启指标监控
	EnableMetrics bool
	// 是否开启告警hook
	EnableAlertHook bool
}

type ConfApplicationBase

type ConfApplicationBase struct {
	// 应用唯一ID
	AppID string
	// 应用名称
	AppName string
	// 应用版本
	Version string
	// 配置路径
	ConfigPath string
}

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 定义应用配置的接口,规范了应用配置的获取、设置、加载及相关管理方法。 该接口适用于应用启动阶段的配置初始化和运行时的只读访问,建议通过安全读写方法进行并发访问。

type LogOrigin

type LogOrigin string

LogOrigin 日志来源分类标识

func (LogOrigin) InstanceKey

func (lo LogOrigin) InstanceKey() string

InstanceKey 获取预定义的日志源分类的子日志器在全局管理容器的key

func (LogOrigin) String

func (lo LogOrigin) String() string

String LogOrigin的字符串

Jump to

Keyboard shortcuts

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