mirror of
https://github.com/lorsanstand/HomeOps-Hub.git
synced 2026-06-19 20:05:17 +03:00
refactor: init log
This commit is contained in:
@@ -0,0 +1,55 @@
|
||||
package config
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
"log"
|
||||
|
||||
"github.com/ilyakaznacheev/cleanenv"
|
||||
"github.com/rs/zerolog"
|
||||
)
|
||||
|
||||
type Config struct {
|
||||
DBHost string `env:"DB_HOST" env-required:"true"`
|
||||
DBPort int `env:"DB_PORT" env-required:"true"`
|
||||
DBPassword string `env:"DB_PASS" env-required:"true"`
|
||||
DBUser string `env:"DB_USER" env-required:"true"`
|
||||
DBName string `env:"DB_NAME" env-required:"true"`
|
||||
LogLevel string `env:"LOG_LEVEL" env-default:"INFO"`
|
||||
Mode string `env:"MODE" env-default:"DEV"`
|
||||
}
|
||||
|
||||
func NewConfig() (*Config, error) {
|
||||
var cfg Config
|
||||
|
||||
if err := cleanenv.ReadConfig(".env", &cfg); err != nil {
|
||||
log.Printf("failed read config: %v", err)
|
||||
|
||||
if err = cleanenv.ReadEnv(&cfg); err != nil {
|
||||
return nil, fmt.Errorf("env read failed: %v", err)
|
||||
}
|
||||
}
|
||||
|
||||
return &cfg, nil
|
||||
}
|
||||
|
||||
func (c *Config) GetURLPostgres() string {
|
||||
return fmt.Sprintf(
|
||||
"postgres://%v:%v@%v:%v/%v?sslmode=disable",
|
||||
c.DBUser,
|
||||
c.DBPassword,
|
||||
c.DBHost,
|
||||
c.DBPort,
|
||||
c.DBName)
|
||||
}
|
||||
|
||||
func (c *Config) GetLogLevel() zerolog.Level {
|
||||
level, err := zerolog.ParseLevel(c.LogLevel)
|
||||
if err != nil {
|
||||
return zerolog.InfoLevel
|
||||
}
|
||||
return level
|
||||
}
|
||||
|
||||
func (c *Config) GetMode() string {
|
||||
return c.Mode
|
||||
}
|
||||
Reference in New Issue
Block a user