Merge pull request #4200 from hashicorp/phinze/logging-acctests

core: use same logging setup for acctests
This commit is contained in:
Paul Hinze 2015-12-08 18:12:18 -06:00
commit 238dfff24c
3 changed files with 14 additions and 12 deletions

View File

@ -1,7 +1,8 @@
package main
package logging
import (
"io"
"io/ioutil"
"log"
"os"
"strings"
@ -18,9 +19,9 @@ const (
var validLevels = []logutils.LogLevel{"TRACE", "DEBUG", "INFO", "WARN", "ERROR"}
// logOutput determines where we should send logs (if anywhere) and the log level.
func logOutput() (logOutput io.Writer, err error) {
logOutput = nil
// LogOutput determines where we should send logs (if anywhere) and the log level.
func LogOutput() (logOutput io.Writer, err error) {
logOutput = ioutil.Discard
envLevel := os.Getenv(EnvLog)
if envLevel == "" {
return

View File

@ -13,6 +13,7 @@ import (
"github.com/hashicorp/go-getter"
"github.com/hashicorp/terraform/config/module"
"github.com/hashicorp/terraform/helper/logging"
"github.com/hashicorp/terraform/terraform"
)
@ -103,6 +104,12 @@ func Test(t TestT, c TestCase) {
return
}
logWriter, err := logging.LogOutput()
if err != nil {
t.Error(fmt.Errorf("error setting up logging: %s", err))
}
log.SetOutput(logWriter)
// We require verbose mode so that the user knows what is going on.
if !testTesting && !testing.Verbose() {
t.Fatal("Acceptance tests must be run with the -v flag on tests")

10
main.go
View File

@ -8,6 +8,7 @@ import (
"os"
"sync"
"github.com/hashicorp/terraform/helper/logging"
"github.com/hashicorp/terraform/plugin"
"github.com/mitchellh/cli"
"github.com/mitchellh/panicwrap"
@ -23,14 +24,11 @@ func realMain() int {
if !panicwrap.Wrapped(&wrapConfig) {
// Determine where logs should go in general (requested by the user)
logWriter, err := logOutput()
logWriter, err := logging.LogOutput()
if err != nil {
fmt.Fprintf(os.Stderr, "Couldn't setup log output: %s", err)
return 1
}
if logWriter == nil {
logWriter = ioutil.Discard
}
// We always send logs to a temporary file that we use in case
// there is a panic. Otherwise, we delete it.
@ -42,10 +40,6 @@ func realMain() int {
defer os.Remove(logTempFile.Name())
defer logTempFile.Close()
// Tell the logger to log to this file
os.Setenv(EnvLog, "")
os.Setenv(EnvLogFile, "")
// Setup the prefixed readers that send data properly to
// stdout/stderr.
doneCh := make(chan struct{})