refac app and logging

pull/1/head
Edouard Paris 5 years ago
parent 5740176266
commit 76db478dff

@ -12,6 +12,17 @@ type App struct {
Network *network.Network Network *network.Network
} }
func Load() (*App, error) { func New(cfg *config.Config) (*App, error) {
return &App{}, nil logger := logging.New(cfg.Logger)
network, err := network.New(&cfg.Network, logger)
if err != nil {
return nil, err
}
return &App{
Config: cfg,
Logger: logger,
Network: network,
}, nil
} }

@ -47,14 +47,17 @@ func New() *cli.App {
} }
func run(c *cli.Context) error { func run(c *cli.Context) error {
network, err := getNetworkFromConfig(c) cfg, err := config.Load(c.String("config"))
if err != nil { if err != nil {
return err return err
} }
a := &app.App{Network: network} app, err := app.New(cfg)
if err != nil {
return err
}
return ui.Run(context.Background(), a) return ui.Run(context.Background(), app)
} }
func getNetworkFromConfig(c *cli.Context) (*network.Network, error) { func getNetworkFromConfig(c *cli.Context) (*network.Network, error) {

@ -18,6 +18,7 @@ type Config struct {
type Logger struct { type Logger struct {
Type string `yaml:"type"` Type string `yaml:"type"`
Dest string `yaml:"dest"`
} }
type Network struct { type Network struct {

@ -46,22 +46,26 @@ func Object(key string, val zapcore.ObjectMarshaler) Field {
func New(cfg config.Logger) Logger { func New(cfg config.Logger) Logger {
var logger Logger var logger Logger
if cfg.Type == "development" { if cfg.Type == "development" {
logger, _ = NewDevelopmentLogger() logger, _ = NewDevelopmentLogger(cfg.Dest)
} else if cfg.Type == "noop" { } else if cfg.Type == "noop" {
logger, _ = NewNopLogger() logger, _ = NewNopLogger()
} else { } else {
logger, _ = NewProductionLogger() logger, _ = NewProductionLogger(cfg.Dest)
} }
return logger return logger
} }
func NewProductionLogger() (Logger, error) { func NewProductionLogger(dest string) (Logger, error) {
return zap.NewProduction() config := zap.NewProductionConfig()
config.OutputPaths = []string{dest}
return config.Build()
} }
func NewDevelopmentLogger() (Logger, error) { func NewDevelopmentLogger(dest string) (Logger, error) {
return zap.NewDevelopment() config := zap.NewDevelopmentConfig()
config.OutputPaths = []string{dest}
return config.Build()
} }
func NewNopLogger() (Logger, error) { func NewNopLogger() (Logger, error) {

Loading…
Cancel
Save