// Copyright 2015 The go-ethereum Authors // This file is part of the go-ethereum library. // // go-ethereum is free software: you can redistribute it and/or modify // it under the terms of the GNU Lesser General Public License as published by // the Free Software Foundation, either version 3 of the License, or // (at your option) any later version. // // The go-ethereum library is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public License // along with the go-ethereum library. If not, see . 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 }