sshpiper/sshpiperd/log.go
2018-12-29 06:13:15 +00:00

29 lines
742 B
Go

package main
import (
"log"
"os"
)
type loggerConfig struct {
LogFile string `long:"log" description:"LogFile path. Leave empty or any error occurs will fall back to stdout" env:"SSHPIPERD_LOG_PATH" ini-name:"log-path"`
LogFlags int `long:"log-flags" default:"3" description:"Flags for logger see https://godoc.org/log, default LstdFlags" env:"SSHPIPERD_LOG_FLAGS" ini-name:"log-flags"`
}
func (l loggerConfig) createLogger() (logger *log.Logger) {
logger = log.New(os.Stdout, "", l.LogFlags)
if l.LogFile != "" {
f, err := os.OpenFile(l.LogFile, os.O_WRONLY|os.O_CREATE|os.O_APPEND, 0644)
if err != nil {
logger.Printf("cannot open log file %v", err)
return
}
logger = log.New(f, "", logger.Flags())
}
return
}