mirror of
https://github.com/micromdm/micromdm/
synced 2026-06-21 03:55:36 +08:00
- Added the concept of a "trace id", a unique ID which gets associated with every log/request by default. Will eventually use opentelemetry/opentracing, or perhaps something better... Still very alpha quality + lots of dependencies/API surface to bring in. For the purpose of MicroMDM, a unique identifier per request is fine. - Added HTTP logging middleware.
27 lines
437 B
Go
27 lines
437 B
Go
package log
|
|
|
|
import (
|
|
"context"
|
|
|
|
"github.com/go-kit/kit/log"
|
|
)
|
|
|
|
type key int
|
|
|
|
const loggerKey key = 0
|
|
|
|
func NewContext(ctx context.Context, logger Logger) context.Context {
|
|
return context.WithValue(ctx, loggerKey, logger)
|
|
}
|
|
|
|
func FromContext(ctx context.Context) Logger {
|
|
v, ok := ctx.Value(loggerKey).(Logger)
|
|
if !ok {
|
|
return log.NewNopLogger()
|
|
}
|
|
|
|
span := traceFromContext(ctx)
|
|
|
|
return log.With(v, "trace_id", span.TraceID)
|
|
}
|