Documentation
¶
Overview ¶
Package config is responsible parsing the configuration file, and then, it is used by other parts of application.
Index ¶
Constants ¶
This section is empty.
Variables ¶
View Source
var ( // LevelToName map logging.Level to string represent LevelToName = map[logging.Level]string{ logging.DEBUG: "DEBUG", logging.INFO: "INFO", logging.NOTICE: "NOTICE", logging.WARNING: "WARNING", logging.ERROR: "ERROR", logging.CRITICAL: "CRITICAL", } // NameToLevel map string represent of log level to logging.Level NameToLevel = map[string]logging.Level{ "DEBUG": logging.DEBUG, "INFO": logging.INFO, "NOTICE": logging.NOTICE, "WARNING": logging.WARNING, "ERROR": logging.ERROR, "CRITICAL": logging.CRITICAL, } )
Functions ¶
func ParseConfig ¶
func ParseConfig(configText []byte, config *Configurator) error
ParseConfig parse config content to specify configurator. If config is nil, default global Config will be used
func ParseConfigFile ¶
func ParseConfigFile(file string, config *Configurator) error
ParseConfigFile is used to parse configuration from yaml file to specify configurator
Types ¶
type Chunk ¶
type Chunk struct {
RootPath string `yaml:"rootPath,omitempty"`
}
Chunk represent config for chunk
type Configurator ¶
type Configurator struct {
Database `yaml:"database,omitempty"`
Log `yaml:"log,omitempty"`
HTTP `yaml:"http,omitempty"`
Chunk `yaml:"chunk,omitempty"`
}
Configurator combine every child config
var DefaultConfig *Configurator
DefaultConfig define a default configurator
type ConsoleLog ¶
type ConsoleLog struct {
// Enable represent enable or disable log
Enable bool `yaml:"enable,omitempty"`
// Level represent stdout log level
Level string `yaml:"level,omitempty"`
// Format represent log format for stdout
Format string `yaml:"format,omitempty"`
}
ConsoleLog is used to config output handle for stdout
type Database ¶
type Database struct {
// driver can be sqlite3, mysql or postgres
Driver string `yaml:"driver,omitempty"`
// mysql and postgres database config
// database server host
Host string `yaml:"host,omitempty"`
// database user
User string `yaml:"user,omitempty"`
// database password
Password string `yaml:"password,omitempty"`
// database name
DBName string `yaml:"dbName,omitempty"`
// database server port
Port uint32 `yaml:"port,omitempty"`
// sqlite3 db file
DBFile string `yaml:"dbFile,omitempty"`
}
Database represent database config
type FileLog ¶
type FileLog struct {
// Enable represent enable or disable log
Enable bool `yaml:"enable,omitempty"`
// Level represent file log level
Level string `yaml:"level,omitempty"`
// Format represent log format for file
Format string `yaml:"format,omitempty"`
// Path is used to config log output destination
Path string `yaml:"path,omitempty"`
// MaxBytesPerFile is used to config max capacity of single log file, unit: bytes
MaxBytesPerFile uint64 `yaml:"maxBytesPerFile,omitempty"`
}
FileLog is used to config output handler for file
type HTTP ¶
type HTTP struct {
// APIPrefix represent api prefix for each route.
// example: /api/v1
APIPrefix string `yaml:"apiPrefix,omitempty"`
// AccessLogFile represent http access log file. if it's empty,
// log will not be written to accessLogFile
AccessLogFile string `yaml:"accessLogFile,omitempty"`
// LimitRateByIPEnable represents whether enable limit rate middleware
// default: false
LimitRateByIPEnable bool `yaml:"limitRateByIPEnable,omitempty"`
// LimitRateInterval represent limit interval, unit: ms, default: 1000ms, that is 1s
LimitRateByIPInterval int64 `yaml:"limitRateByIPInterval,omitempty"`
// LimitRateByIPMaxNum represent max request limit per LimitRateByIPInterval
// default: 100
LimitRateByIPMaxNum uint `yaml:"limitRateByIPMaxNum,omitempty"`
CORSEnable bool `yaml:"corsEnable,omitempty"`
CORSAllowAllOrigins bool `yaml:"corsAllowAllOrigins,omitempty"`
CORSAllowOrigins []string `yaml:"corsAllowOrigins,omitempty"`
CORSAllowMethods []string `yaml:"corsAllowMethods,omitempty"`
CORSAllowHeaders []string `yaml:"corsAllowHeaders,omitempty"`
CORSExposeHeaders []string `yaml:"corsExposeHeaders,omitempty"`
CORSAllowCredentials bool `yaml:"corsAllowCredentials,omitempty"`
// CORSMaxAge indicates how long (in seconds) the results of a preflight request
// can be cached
CORSMaxAge int64 `yaml:"corsMaxAge,omitempty"`
}
HTTP define config format for http service
type Log ¶
type Log struct {
Console ConsoleLog `yaml:"console,omitempty"`
File FileLog `yaml:"file,omitempty"`
}
Log includes configuration item for log component
Click to show internal directories.
Click to hide internal directories.