Merge branch '18947-githttpd'
[arvados.git] / sdk / go / ctxlog / log.go
index e66eeadee1e1fc8d6b50cd3e10fa59e8a5a66a80..e888f3151b732bedd4eddc66a590b5f9699a4149 100644 (file)
@@ -11,7 +11,6 @@ import (
        "os"
 
        "github.com/sirupsen/logrus"
-       check "gopkg.in/check.v1"
 )
 
 var (
@@ -41,7 +40,7 @@ func FromContext(ctx context.Context) logrus.FieldLogger {
 
 // New returns a new logger with the indicated format and
 // level.
-func New(out io.Writer, format, level string) logrus.FieldLogger {
+func New(out io.Writer, format, level string) *logrus.Logger {
        logger := logrus.New()
        logger.Out = out
        setFormat(logger, format)
@@ -49,7 +48,7 @@ func New(out io.Writer, format, level string) logrus.FieldLogger {
        return logger
 }
 
-func TestLogger(c *check.C) logrus.FieldLogger {
+func TestLogger(c interface{ Log(...interface{}) }) *logrus.Logger {
        logger := logrus.New()
        logger.Out = &logWriter{c.Log}
        setFormat(logger, "text")
@@ -61,6 +60,12 @@ func TestLogger(c *check.C) logrus.FieldLogger {
        return logger
 }
 
+// LogWriter returns an io.Writer that writes to the given log func,
+// which is typically (*check.C).Log().
+func LogWriter(log func(...interface{})) io.Writer {
+       return &logWriter{log}
+}
+
 // SetLevel sets the current logging level. See logrus for level
 // names.
 func SetLevel(level string) {
@@ -88,6 +93,11 @@ func setFormat(logger *logrus.Logger, format string) {
                        FullTimestamp:   true,
                        TimestampFormat: rfc3339NanoFixed,
                }
+       case "plain":
+               logger.Formatter = &logrus.TextFormatter{
+                       DisableColors:    true,
+                       DisableTimestamp: true,
+               }
        case "json", "":
                logger.Formatter = &logrus.JSONFormatter{
                        TimestampFormat: rfc3339NanoFixed,