diff options
Diffstat (limited to 'cryptfs/log.go')
-rw-r--r-- | cryptfs/log.go | 16 |
1 files changed, 13 insertions, 3 deletions
diff --git a/cryptfs/log.go b/cryptfs/log.go index 44cb84f..19d8b51 100644 --- a/cryptfs/log.go +++ b/cryptfs/log.go @@ -2,6 +2,7 @@ package cryptfs import ( "encoding/json" + "fmt" "log" "os" ) @@ -17,7 +18,10 @@ func JSONDump(obj interface{}) string { // toggledLogger - a Logger than can be enabled and disabled type toggledLogger struct { + // Enable or disable output Enabled bool + // Panic after logging a message, useful in regression tests + PanicAfter bool *log.Logger } @@ -26,12 +30,18 @@ func (l *toggledLogger) Printf(format string, v ...interface{}) { return } l.Logger.Printf(format, v...) + if l.PanicAfter { + panic("PanicAfter: " + fmt.Sprintf(format, v...)) + } } func (l *toggledLogger) Println(v ...interface{}) { if !l.Enabled { return } l.Logger.Println(v...) + if l.PanicAfter { + panic("PanicAfter: " + fmt.Sprintln(v...)) + } } // As defined by http://elinux.org/Debugging_by_printing#Log_Levels @@ -45,7 +55,7 @@ var Info *toggledLogger var Warn *toggledLogger func init() { - Debug = &toggledLogger{false, log.New(os.Stdout, "", 0)} - Info = &toggledLogger{true, log.New(os.Stdout, "", 0)} - Warn = &toggledLogger{true, log.New(os.Stderr, "", 0)} + Debug = &toggledLogger{false, false, log.New(os.Stdout, "", 0)} + Info = &toggledLogger{true, false, log.New(os.Stdout, "", 0)} + Warn = &toggledLogger{true, false, log.New(os.Stderr, "", 0)} } |