revel/revel — pull request #557 by pushrax (2014-03-16 17:06:33+00:00)
Title: Make getLogger public and allow it to be overridden

Addresses #554. Here's how I'm using it:

```go
type logrusInfoWriter struct {
target *logrus.Logger
}
func (l *logrusInfoWriter) Write(p []byte) (n int, err error) {
l.target.Info(strings.TrimSpace(string(p)))
return len(p), nil
}

// etc.

func getLogger(name string) *log.Logger {
switch name {
case "info":
// Hijack stream to point to a different logger.
return log.New(&logrusInfoWriter{Log}, "", 0)
case "warn":
// etc.
}

panic("Unknown logger type: " + name)
}

func init() {
revel.GetLogger = getLogger
}
```

Total hack, but covers my needs completely. Feel free to discuss.