summaryrefslogtreecommitdiff
path: root/logger
diff options
authorMichael Vogt <mvo@ubuntu.com>2016-04-14 16:06:04 +0200
committerMichael Vogt <mvo@ubuntu.com>2016-04-14 16:06:04 +0200
commitb091db00cb2340c0f25ab7fbe969b125b85b9d3e (patch)
treee8aa6d8e1260bbedd64fd2a887ede0ee4f2b58e4 /logger
parentee7cacd6f7efdbfb1f01270d50e62d2e413456b6 (diff)
allow console logging via SNAPD_DEBUG
Diffstat (limited to 'logger')
-rw-r--r--logger/logger.go8
-rw-r--r--logger/logger_test.go27
2 files changed, 19 insertions, 16 deletions
diff --git a/logger/logger.go b/logger/logger.go
index cc2421ad06..2027c7a879 100644
--- a/logger/logger.go
+++ b/logger/logger.go
@@ -27,8 +27,6 @@ import (
"log/syslog"
"os"
"sync"
-
- "github.com/ubuntu-core/snappy/osutil"
)
// A Logger is a fairly minimal logging tool.
@@ -106,14 +104,12 @@ type ConsoleLog struct {
sys *log.Logger
}
-var osStderr = os.Stderr
-
// Debug sends the msg to syslog
func (l *ConsoleLog) Debug(msg string) {
s := "DEBUG: " + msg
l.sys.Output(3, s)
- // show debug log when run manually
- if osutil.Isatty(int(osStderr.Fd())) {
+
+ if os.Getenv("SNAPD_DEBUG") != "" {
l.log.Output(3, s)
}
}
diff --git a/logger/logger_test.go b/logger/logger_test.go
index 570fb26205..4e7341279c 100644
--- a/logger/logger_test.go
+++ b/logger/logger_test.go
@@ -22,11 +22,12 @@ package logger
import (
"bytes"
"fmt"
- "io/ioutil"
"log"
"os"
"testing"
+ "github.com/ubuntu-core/snappy/testutil"
+
. "gopkg.in/check.v1"
)
@@ -76,25 +77,31 @@ func (s *LogSuite) TestNew(c *C) {
c.Check(l.log, NotNil)
}
-func (s *LogSuite) TestDebugfForNonTTY(c *C) {
+func (s *LogSuite) TestDebugf(c *C) {
var logbuf bytes.Buffer
l, err := NewConsoleLog(&logbuf, DefaultFlags)
c.Assert(err, IsNil)
- // stderr is not a tty for this test
- tmpf, err := ioutil.TempFile("", "debugf")
+ SetLogger(l)
+
+ Debugf("xyzzy")
+ c.Check(s.sysbuf.String(), Matches, `(?m).*logger_test\.go:\d+: DEBUG: xyzzy`)
+ c.Check(logbuf.String(), Equals, "")
+}
+
+func (s *LogSuite) TestDebugfEnv(c *C) {
+ var logbuf bytes.Buffer
+ l, err := NewConsoleLog(&logbuf, DefaultFlags)
c.Assert(err, IsNil)
- osStderr = tmpf
- defer func() {
- os.Remove(tmpf.Name())
- osStderr = os.Stderr
- }()
SetLogger(l)
+ os.Setenv("SNAPD_DEBUG", "1")
+ defer os.Unsetenv("SNAPD_DEBUG")
+
Debugf("xyzzy")
c.Check(s.sysbuf.String(), Matches, `(?m).*logger_test\.go:\d+: DEBUG: xyzzy`)
- c.Check(logbuf.String(), Equals, "")
+ c.Check(logbuf.String(), testutil.Contains, `DEBUG: xyzzy`)
}
func (s *LogSuite) TestNoticef(c *C) {