func Register(reg *objects.Registry) error {
	return reg.Register(&objects.Object{
		Value: &Logger{
			Logger: log.New(Stdout, "", log.LstdFlags),
			kvp:    make(map[string]interface{}),
		},
	})
}
Register the standard logger component with a registry
package std
import (
	"fmt"
	"io"
	"log"
	"os"
	"strings"
	"github.com/gliderlabs/com/config"
	"github.com/gliderlabs/com/objects"
	api "github.com/gliderlabs/stdcom/log"
)
type Config struct {
	Prefix string
	Output string
}
type Output io.Writer
var (
	Stdout Output = os.Stdout
	Stderr Output = os.Stderr
)
func lookupOutput(output string) Output {
	return map[string]Output{
		"stdout": Stdout,
		"stderr": Stderr,
	}[strings.ToLower(output)]
}
type Logger struct {
	kvp map[string]interface{}
	*log.Logger
	Config
}
func (l *Logger) InitializeConfig(config config.Settings) error {
	config.SetDefault("output", "stdout")
	if err := config.Unmarshal(&(l.Config)); err != nil {
		return err
	}
	l.SetPrefix(l.Config.Prefix)
	l.SetOutput(lookupOutput(l.Config.Output))
	return nil
}