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
}
func Load() (*App, error) {
return &App{}, nil
func New(cfg *config.Config) (*App, error) {
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 {
network, err := getNetworkFromConfig(c)
cfg, err := config.Load(c.String("config"))
if err != nil {
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) {

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

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

Loading…
Cancel
Save