[zedmon] Clean up logging; send to stderr

This is in preparation for stream-to-stdout support.

Change-Id: I09bbdec30e2362759a80c5fef152594b24265c3f
diff --git a/cmd/zedmon/common.go b/cmd/zedmon/common.go
index 2562aa4..6572f1a 100644
--- a/cmd/zedmon/common.go
+++ b/cmd/zedmon/common.go
@@ -33,6 +33,7 @@
 	"flag"
 	"fmt"
 	"io/ioutil"
+	"log"
 	"os"
 
 	"fuchsia.googlesource.com/zedmon"
@@ -40,6 +41,10 @@
 
 var configFileName string
 
+func init() {
+	log.SetOutput(os.Stderr)
+}
+
 func setCommonFlags(flags *flag.FlagSet) {
 	flags.StringVar(&configFileName, "config", "", "Config file.")
 }
diff --git a/cmd/zedmon/gpio.go b/cmd/zedmon/gpio.go
index fc6ac48..8a041ab 100644
--- a/cmd/zedmon/gpio.go
+++ b/cmd/zedmon/gpio.go
@@ -31,7 +31,7 @@
 import (
 	"context"
 	"flag"
-	"fmt"
+	"log"
 	"strconv"
 
 	"fuchsia.googlesource.com/zedmon"
@@ -54,24 +54,24 @@
 func (*gpioCmd) Execute(_ context.Context, f *flag.FlagSet, _ ...interface{}) subcommands.ExitStatus {
 	zedmon, err := zedmon.OpenZedmon(getConfig())
 	if err != nil {
-		fmt.Printf("Can't open zendmon: %v", err)
+		log.Printf("Can't open zendmon: %v", err)
 		return subcommands.ExitFailure
 	}
 	defer zedmon.Close()
 
 	args := f.Args()
 	if len(args) != 2 {
-		fmt.Println("Wrong number of arguments.")
+		log.Println("Wrong number of arguments.")
 		return subcommands.ExitUsageError
 	}
 
 	index, err := strconv.Atoi(args[0])
 	if err != nil {
-		fmt.Printf("Can't parse index %s: %v", args[0], err)
+		log.Printf("Can't parse index %s: %v", args[0], err)
 		return subcommands.ExitUsageError
 	}
 	if !(0 <= index && index <= 254) {
-		fmt.Printf("Index out of range: %v", index)
+		log.Printf("Index out of range: %v", index)
 		return subcommands.ExitUsageError
 	}
 
@@ -82,13 +82,13 @@
 	case "0":
 		state = false
 	default:
-		fmt.Printf("Unknown state %s\n", args[1])
+		log.Printf("Unknown state %s", args[1])
 		return subcommands.ExitUsageError
 	}
 
 	err = zedmon.SetOuput(uint8(index+1), state)
 	if err != nil {
-		fmt.Println(err.Error())
+		log.Println(err.Error())
 		return subcommands.ExitFailure
 	}
 
diff --git a/cmd/zedmon/list.go b/cmd/zedmon/list.go
index 6187837..ccceeeb 100644
--- a/cmd/zedmon/list.go
+++ b/cmd/zedmon/list.go
@@ -31,7 +31,7 @@
 import (
 	"context"
 	"flag"
-	"fmt"
+	"log"
 
 	"fuchsia.googlesource.com/zedmon"
 	"github.com/google/subcommands"
@@ -52,12 +52,12 @@
 func (*listCmd) Execute(_ context.Context, f *flag.FlagSet, _ ...interface{}) subcommands.ExitStatus {
 	devs, err := zedmon.Enumerate()
 	if err != nil {
-		fmt.Printf("Can't enumerate zendmon: %v", err)
+		log.Printf("Can't enumerate zendmon: %v", err)
 		return subcommands.ExitFailure
 	}
 
 	for _, dev := range devs {
-		fmt.Printf("%s\n", dev.Serial)
+		log.Println(dev.Serial)
 	}
 
 	return subcommands.ExitSuccess
diff --git a/cmd/zedmon/record.go b/cmd/zedmon/record.go
index 06da362..240b5ce 100644
--- a/cmd/zedmon/record.go
+++ b/cmd/zedmon/record.go
@@ -32,7 +32,7 @@
 	"context"
 	"encoding/csv"
 	"flag"
-	"fmt"
+	"log"
 	"os"
 	"os/signal"
 	"strconv"
@@ -57,24 +57,24 @@
 func (*recordCmd) Execute(_ context.Context, _ *flag.FlagSet, _ ...interface{}) subcommands.ExitStatus {
 	zedmon, err := zedmon.OpenZedmon(getConfig())
 	if err != nil {
-		fmt.Printf("Can't open zendmon: %v", err)
+		log.Printf("Can't open zendmon: %v", err)
 		return subcommands.ExitFailure
 	}
 	defer zedmon.Close()
 
 	f, err := os.OpenFile("zedmon.csv", os.O_CREATE|os.O_WRONLY|os.O_TRUNC, 0666)
 	if err != nil {
-		fmt.Printf("Can't open zedmon.csv: %v", err)
+		log.Printf("Can't open zedmon.csv: %v", err)
 		return subcommands.ExitFailure
 	}
 	defer f.Close()
 
 	offset, delta, err := zedmon.GetTimeOffset()
 	if err != nil {
-		fmt.Printf("Get time offset: %v", err)
+		log.Printf("Get time offset: %v", err)
 		return subcommands.ExitFailure
 	}
-	fmt.Printf("Time offset: %dns ± %dns\n", offset.Nanoseconds(), delta.Nanoseconds())
+	log.Printf("Time offset: %dns ± %dns\n", offset.Nanoseconds(), delta.Nanoseconds())
 
 	termChan := make(chan os.Signal, 1)
 	signal.Notify(termChan, os.Interrupt)
@@ -82,14 +82,14 @@
 	writer := csv.NewWriter(f)
 	defer writer.Flush()
 
-	fmt.Printf("Starting report recording. Send ^C to stop.\n")
+	log.Println("Starting report recording. Send ^C to stop.")
 	zedmon.EnableReporting()
 
 RecordSampling:
 	for {
 		reports, err := zedmon.ReadReports()
 		if err != nil {
-			fmt.Printf("Error reading reports: %v\n", err)
+			log.Printf("Error reading reports: %v", err)
 			continue
 		}
 		for _, report := range reports {
@@ -107,7 +107,7 @@
 		default:
 		}
 	}
-	fmt.Printf("Stopping report recording.\n")
+	log.Println("Stopping report recording.")
 
 	return subcommands.ExitSuccess
 }
diff --git a/cmd/zedmon/relay.go b/cmd/zedmon/relay.go
index 6133813..12c53f7 100644
--- a/cmd/zedmon/relay.go
+++ b/cmd/zedmon/relay.go
@@ -31,7 +31,7 @@
 import (
 	"context"
 	"flag"
-	"fmt"
+	"log"
 
 	"fuchsia.googlesource.com/zedmon"
 	"github.com/google/subcommands"
@@ -53,14 +53,14 @@
 func (*relayCmd) Execute(_ context.Context, f *flag.FlagSet, _ ...interface{}) subcommands.ExitStatus {
 	zedmon, err := zedmon.OpenZedmon(getConfig())
 	if err != nil {
-		fmt.Printf("Can't open zendmon: %v", err)
+		log.Printf("Can't open zendmon: %v", err)
 		return subcommands.ExitFailure
 	}
 	defer zedmon.Close()
 
 	args := f.Args()
 	if len(args) != 1 {
-		fmt.Println("Wrong number of arguments.")
+		log.Println("Wrong number of arguments.")
 		return subcommands.ExitUsageError
 	}
 
@@ -71,13 +71,13 @@
 	case "off":
 		state = false
 	default:
-		fmt.Printf("Unknown state %s\n", args[0])
+		log.Printf("Unknown state %s", args[0])
 		return subcommands.ExitUsageError
 	}
 
 	err = zedmon.SetOuput(0, state)
 	if err != nil {
-		fmt.Println(err.Error())
+		log.Println(err.Error())
 		return subcommands.ExitFailure
 	}
 
diff --git a/lib/data_type.go b/lib/data_type.go
index c7b3e45..e1f34ad 100644
--- a/lib/data_type.go
+++ b/lib/data_type.go
@@ -84,6 +84,6 @@
 		err := binary.Read(r, binary.LittleEndian, &val)
 		return float64(val), err
 	default:
-		return 0.0, fmt.Errorf("Can't decode type %d.", dt)
+		return 0.0, fmt.Errorf("Can't decode type %d", dt)
 	}
 }
diff --git a/lib/zedmon.go b/lib/zedmon.go
index d520289..cf68a17 100644
--- a/lib/zedmon.go
+++ b/lib/zedmon.go
@@ -125,7 +125,7 @@
 		data[1] = 0x00
 		_, err := z.outEp.Write(data)
 		if err != nil {
-			log.Printf("Sync Send Error: %v\n", err)
+			log.Printf("Sync send error: %v", err)
 			continue
 		}
 		buf := make([]byte, z.inEp.Desc.MaxPacketSize)
@@ -136,7 +136,7 @@
 		if usbErr, ok := err.(gousb.TransferStatus); ok && usbErr == gousb.TransferTimedOut {
 			continue
 		}
-		log.Printf("Sync Read Error: %v\n", err)
+		log.Printf("Sync read error: %v", err)
 	}
 }
 
@@ -151,12 +151,12 @@
 		start := time.Now()
 		_, err := z.outEp.Write(data)
 		if err != nil {
-			log.Printf("Sync Send Error: %v\n", err)
+			log.Printf("Sync Send Error: %v", err)
 			return 0, 0, err
 		}
 		buf := z.read()
 		if buf == nil {
-			return 0, 0, fmt.Errorf("Can't read packet\n")
+			return 0, 0, fmt.Errorf("Can't read packet")
 		}
 		end := time.Now()
 		reader := bytes.NewReader(buf[1:])
@@ -271,7 +271,7 @@
 // Returns: offset after this field, error
 func (z *Zedmon) getFormatReport(index uint, offset *int) (bool, error) {
 	if index >= 0xff {
-		return false, fmt.Errorf("Index %d out of range.", index)
+		return false, fmt.Errorf("Index %d out of range", index)
 	}
 
 	data := make([]byte, 2)
@@ -295,7 +295,7 @@
 
 	dataType := DataType(packet.ValueType)
 	if dataType.Size() < 0 {
-		return false, fmt.Errorf("Can't handle Value type %d.", dataType)
+		return false, fmt.Errorf("Can't handle Value type %d", dataType)
 	}
 
 	// TODO: validate Unit
@@ -335,7 +335,7 @@
 			}
 		}
 	}
-	return 0, 0, 0, fmt.Errorf("Can't find zedmon interface.")
+	return 0, 0, 0, fmt.Errorf("Can't find zedmon interface")
 }
 
 func (z *Zedmon) enumerateFields() error {