Merge pull request #168 from markpeek/markpeek-filelogging

Add ability to send log output to a file using PACKER_LOG_PATH
This commit is contained in:
Mitchell Hashimoto 2013-07-13 18:55:12 -07:00
commit c1aa059df4
1 changed files with 14 additions and 2 deletions

View File

@ -14,12 +14,24 @@ import (
)
func main() {
// Setup logging if PACKER_LOG is set.
// Log to PACKER_LOG_PATH if it is set, otherwise default to stderr.
if os.Getenv("PACKER_LOG") == "" {
// If we don't have logging explicitly enabled, then disable it
log.SetOutput(ioutil.Discard)
} else {
// Logging is enabled, make sure it goes to stderr
log.SetOutput(os.Stderr)
if log_path := os.Getenv("PACKER_LOG_PATH"); log_path == "" {
log.SetOutput(os.Stderr)
} else {
file, err := os.OpenFile(log_path, os.O_WRONLY|os.O_CREATE|os.O_APPEND, 0600)
if err == nil {
log.SetOutput(file)
} else {
// Problem opening the file, fail back to Stderr
log.SetOutput(os.Stderr)
log.Printf("Could not open %s for logging (%s). Using stderr instead.", log_path, err.Error())
}
}
}
// If there is no explicit number of Go threads to use, then set it