Optimized log (#167)

This commit is contained in:
eMeab 2021-01-14 22:45:23 +08:00 committed by GitHub
parent d85162ea44
commit 638e8384b6
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23

View file

@ -263,16 +263,18 @@ func (d *DefaultDispatcher) routedDispatch(ctx context.Context, link *transport.
skipRoutePick = content.SkipRoutePick skipRoutePick = content.SkipRoutePick
} }
var inTag string routingLink := routing_session.AsRoutingContext(ctx)
inTag := routingLink.GetInboundTag()
isPickRoute := false
if d.router != nil && !skipRoutePick { if d.router != nil && !skipRoutePick {
if route, err := d.router.PickRoute(routing_session.AsRoutingContext(ctx)); err == nil { if route, err := d.router.PickRoute(routingLink); err == nil {
tag := route.GetOutboundTag() outTag := route.GetOutboundTag()
inTag = route.GetInboundTag() isPickRoute = true
if h := d.ohm.GetHandler(tag); h != nil { if h := d.ohm.GetHandler(outTag); h != nil {
newError("taking detour [", tag, "] for [", destination, "]").WriteToLog(session.ExportIDToError(ctx)) newError("taking detour [", outTag, "] for [", destination, "]").WriteToLog(session.ExportIDToError(ctx))
handler = h handler = h
} else { } else {
newError("non existing tag: ", tag).AtWarning().WriteToLog(session.ExportIDToError(ctx)) newError("non existing outTag: ", outTag).AtWarning().WriteToLog(session.ExportIDToError(ctx))
} }
} else { } else {
newError("default route for ", destination).WriteToLog(session.ExportIDToError(ctx)) newError("default route for ", destination).WriteToLog(session.ExportIDToError(ctx))
@ -292,11 +294,19 @@ func (d *DefaultDispatcher) routedDispatch(ctx context.Context, link *transport.
if accessMessage := log.AccessMessageFromContext(ctx); accessMessage != nil { if accessMessage := log.AccessMessageFromContext(ctx); accessMessage != nil {
if tag := handler.Tag(); tag != "" { if tag := handler.Tag(); tag != "" {
if isPickRoute {
if inTag != "" { if inTag != "" {
accessMessage.Detour = inTag + " -> " + tag accessMessage.Detour = inTag + " -> " + tag
} else { } else {
accessMessage.Detour = tag accessMessage.Detour = tag
} }
} else {
if inTag != "" {
accessMessage.Detour = inTag + " >> " + tag
} else {
accessMessage.Detour = tag
}
}
} }
log.Record(accessMessage) log.Record(accessMessage)
} }