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
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:
|
||
|
}
|
||
|
}
|