diff options
Diffstat (limited to 'logger/log.go')
-rw-r--r-- | logger/log.go | 49 |
1 files changed, 49 insertions, 0 deletions
diff --git a/logger/log.go b/logger/log.go new file mode 100644 index 000000000..e2a35ba53 --- /dev/null +++ b/logger/log.go @@ -0,0 +1,49 @@ +package logger + +import ( + "fmt" + "io" + "log" + "os" + + "github.com/ethereum/go-ethereum/common" +) + +func openLogFile(datadir string, filename string) *os.File { + path := common.AbsolutePath(datadir, filename) + file, err := os.OpenFile(path, os.O_RDWR|os.O_CREATE|os.O_APPEND, 0666) + if err != nil { + panic(fmt.Sprintf("error opening log file '%s': %v", filename, err)) + } + return file +} + +func New(datadir string, logFile string, logLevel int) LogSystem { + var writer io.Writer + if logFile == "" { + writer = os.Stdout + } else { + writer = openLogFile(datadir, logFile) + } + + var sys LogSystem + sys = NewStdLogSystem(writer, log.LstdFlags, LogLevel(logLevel)) + AddLogSystem(sys) + + return sys +} + +func NewJSONsystem(datadir string, logFile string) LogSystem { + var writer io.Writer + if logFile == "-" { + writer = os.Stdout + } else { + writer = openLogFile(datadir, logFile) + } + + var sys LogSystem + sys = NewJsonLogSystem(writer) + AddLogSystem(sys) + + return sys +} |