Add WithVersion to context and other cleanup

By adding WithVersion to the context package, we can simplify context setup in
the application. This avoids some odd bugs where instantiation order can lead
to missing instance.id or version from log messages.

Signed-off-by: Stephen J Day <stephen.day@docker.com>
This commit is contained in:
Stephen J Day 2015-09-10 20:41:58 -07:00
parent cabf1fd236
commit 49f080acc8
2 changed files with 5 additions and 10 deletions

View file

@ -77,8 +77,6 @@ func NewApp(ctx context.Context, configuration *configuration.Configuration) *Ap
isCache: configuration.Proxy.RemoteURL != "",
}
app.Context = ctxu.WithLogger(app.Context, ctxu.GetLogger(app, "instance.id"))
// Register the handler dispatchers.
app.register(v2.RouteNameBase, func(ctx *Context, r *http.Request) http.Handler {
return http.HandlerFunc(apiBase)

View file

@ -35,6 +35,9 @@ var Cmd = &cobra.Command{
return
}
// setup context
ctx := context.WithVersion(context.Background(), version.Version)
config, err := resolveConfiguration(args)
if err != nil {
fmt.Fprintf(os.Stderr, "configuration error: %v\n", err)
@ -51,7 +54,7 @@ var Cmd = &cobra.Command{
}(config.HTTP.Debug.Addr)
}
registry, err := NewRegistry(context.Background(), config)
registry, err := NewRegistry(ctx, config)
if err != nil {
log.Fatalln(err)
}
@ -78,9 +81,6 @@ type Registry struct {
// NewRegistry creates a new registry from a context and configuration struct.
func NewRegistry(ctx context.Context, config *configuration.Configuration) (*Registry, error) {
// Note this
ctx = context.WithValue(ctx, "version", version.Version)
var err error
ctx, err = configureLogging(ctx, config)
if err != nil {
@ -218,7 +218,7 @@ func configureLogging(ctx context.Context, config *configuration.Configuration)
if config.Log.Level == "" && config.Log.Formatter == "" {
// If no config for logging is set, fallback to deprecated "Loglevel".
log.SetLevel(logLevel(config.Loglevel))
ctx = context.WithLogger(ctx, context.GetLogger(ctx, "version"))
ctx = context.WithLogger(ctx, context.GetLogger(ctx))
return ctx, nil
}
@ -253,9 +253,6 @@ func configureLogging(ctx context.Context, config *configuration.Configuration)
log.Debugf("using %q logging formatter", config.Log.Formatter)
}
// log the application version with messages
ctx = context.WithLogger(ctx, context.GetLogger(ctx, "version"))
if len(config.Log.Fields) > 0 {
// build up the static fields, if present.
var fields []interface{}