log.go 674 B

123456789101112131415161718192021222324252627282930313233
  1. package logger
  2. import (
  3. "fmt"
  4. "io"
  5. "log"
  6. "os"
  7. "github.com/ethereum/go-ethereum/ethutil"
  8. )
  9. func openLogFile(datadir string, filename string) *os.File {
  10. path := ethutil.AbsolutePath(datadir, filename)
  11. file, err := os.OpenFile(path, os.O_RDWR|os.O_CREATE|os.O_APPEND, 0666)
  12. if err != nil {
  13. panic(fmt.Sprintf("error opening log file '%s': %v", filename, err))
  14. }
  15. return file
  16. }
  17. func New(datadir string, logFile string, logLevel int) LogSystem {
  18. var writer io.Writer
  19. if logFile == "" {
  20. writer = os.Stdout
  21. } else {
  22. writer = openLogFile(datadir, logFile)
  23. }
  24. sys := NewStdLogSystem(writer, log.LstdFlags, LogLevel(logLevel))
  25. AddLogSystem(sys)
  26. return sys
  27. }