You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

69 lines
1.8 KiB
Go

3 weeks ago
package fxevent
import (
"cls-server/pkg/logger"
"go.uber.org/fx/fxevent"
)
type LogrusLogger struct {
logger.Logger
}
var _ fxevent.Logger = (*LogrusLogger)(nil)
type Option func(*LogrusLogger) *LogrusLogger
func NewLogrusLogger(options ...Option) fxevent.Logger {
return &LogrusLogger{logger.NewLogger("panoramic")}
}
func (l *LogrusLogger) LogEvent(event fxevent.Event) {
switch e := event.(type) {
case *fxevent.OnStartExecuting:
l.Info("OnStart hook executing")
case *fxevent.OnStartExecuted:
if e.Err != nil {
l.Errorf("OnStart hook failed:%v", e.Err)
} else {
l.Infof("OnStart hook executed.caller:%s,callee:%s,runtime:%s", e.CallerName, e.FunctionName, e.Runtime)
}
case *fxevent.OnStopExecuting:
l.Infof("OnStop hook executing.caller:%s,callee:%s.", e.CallerName, e.FunctionName)
case *fxevent.OnStopExecuted:
case *fxevent.Supplied:
case *fxevent.Provided:
for _, rtype := range e.OutputTypeNames {
if e.ModuleName != "" {
l.Infof("provided:constructor:%s,type:%s,private:%v,module:%s", e.ConstructorName, rtype, e.Private, e.ModuleName)
} else {
l.Infof("provided:constructor:%s,type:%s,private:%v", e.ConstructorName, rtype, e.Private)
}
}
if e.Err != nil {
l.Errorf("error encountered while applying options,module:%s:%v", e.ModuleName, e.Err)
}
case *fxevent.Replaced:
case *fxevent.Decorated:
case *fxevent.Invoking:
case *fxevent.Invoked:
case *fxevent.Stopping:
l.Infof("received signal:%s", e.Signal.String())
case *fxevent.Stopped:
case *fxevent.RollingBack:
l.Errorf("start failed, rolling back.err:%v", e.StartErr)
case *fxevent.RolledBack:
if e.Err != nil {
l.Errorf("rollback failed.err:%v", e.Err)
}
case *fxevent.Started:
if e.Err != nil {
l.Errorf("start failed:%v", e.Err)
} else {
l.Info("Started")
}
case *fxevent.LoggerInitialized:
}
}