Skip to content

Commit

Permalink
Merge pull request #7 from askuy/feature/slowlog20240625
Browse files Browse the repository at this point in the history
slow log
  • Loading branch information
askuy authored Jun 26, 2024
2 parents 534a490 + 8f2f451 commit 8607605
Show file tree
Hide file tree
Showing 2 changed files with 16 additions and 11 deletions.
6 changes: 3 additions & 3 deletions container.go
Original file line number Diff line number Diff line change
Expand Up @@ -140,9 +140,9 @@ func (c *Container) Build(options ...Option) *Component {
if c.config.EnableAccessInterceptor {
options = append(options, WithInterceptor(accessInterceptor(c.name, c.config, c.logger)))
}
if c.config.EnableTraceInterceptor {
// options = append(options, WithInterceptor(traceInterceptor(c.name, c.config, c.logger)))
}
//if c.config.EnableTraceInterceptor {
// options = append(options, WithInterceptor(traceInterceptor(c.name, c.config, c.logger)))
//}
for _, option := range options {
option(c)
}
Expand Down
21 changes: 13 additions & 8 deletions interceptor.go
Original file line number Diff line number Diff line change
Expand Up @@ -91,10 +91,9 @@ func accessInterceptor(compName string, c *config, logger *elog.Component) func(

var fields = make([]elog.Field, 0, 15)
fields = append(fields,
elog.FieldComponentName(compName),
elog.FieldMethod(cmd.name),
elog.FieldCost(cost),
elog.String("dbName", cmd.dbName),
elog.FieldKey(cmd.dbName),
elog.String("collName", cmd.collName),
elog.String("cmdName", cmd.name),
)
Expand All @@ -104,13 +103,15 @@ func accessInterceptor(compName string, c *config, logger *elog.Component) func(
if c.EnableAccessInterceptorRes && err == nil {
fields = append(fields, elog.Any("res", cmd.res))
}

event := "normal"
isSlowLog := false
if c.SlowLogThreshold > time.Duration(0) && cost > c.SlowLogThreshold {
logger.Warn("slow", fields...)
event = "slow"
isSlowLog = true
}

if err != nil {
fields = append(fields, elog.FieldEvent("error"), elog.FieldErr(err))
fields = append(fields, elog.FieldEvent(event), elog.FieldErr(err))
if errors.Is(err, mongo.ErrNoDocuments) {
logger.Warn("access", fields...)
return err
Expand All @@ -119,9 +120,13 @@ func accessInterceptor(compName string, c *config, logger *elog.Component) func(
return err
}

if c.EnableAccessInterceptor {
fields = append(fields, elog.FieldEvent("normal"))
logger.Info("access", fields...)
if c.EnableAccessInterceptor || isSlowLog {
fields = append(fields, elog.FieldEvent(event))
if isSlowLog {
logger.Warn("access", fields...)
} else {
logger.Info("access", fields...)
}
}
return nil
}
Expand Down

0 comments on commit 8607605

Please sign in to comment.