fxlogger

package
v0.1.0 Latest Latest
Warning

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

Go to latest
Published: Jun 13, 2024 License: Apache-2.0, MIT Imports: 7 Imported by: 14

Documentation

Index

Constants

This section is empty.

Variables

View Source
var Module = fx.Options(
	fx.Provide(
		func(lc fx.Lifecycle, serviceName toolkitfx.ServiceName, config *Config) (*zap.Logger, error) {
			var (
				logger *zap.Logger
				err    error
			)
			if config.Production {
				logger, err = NewProductionLogger(string(serviceName))
			} else {
				logger, err = NewDevelopmentLogger(string(serviceName))
			}
			if err != nil {
				return nil, err
			}
			zap.ReplaceGlobals(logger)

			lc.Append(fx.Hook{
				OnStart: nil,
				OnStop: func(ctx context.Context) error {
					_ = logger.Sync()
					return nil
				},
			})

			return logger, nil
		},
	),
)

Functions

func NewDevelopmentLogger

func NewDevelopmentLogger(serviceName string) (*zap.Logger, error)

func NewProductionLogger

func NewProductionLogger(serviceName string) (*zap.Logger, error)

Types

type Config

type Config struct {
	Production bool `default:"true"`
}

Jump to

Keyboard shortcuts

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