aboutsummaryrefslogtreecommitdiffstats
path: root/logger/log.go
diff options
context:
space:
mode:
Diffstat (limited to 'logger/log.go')
-rw-r--r--logger/log.go39
1 files changed, 39 insertions, 0 deletions
diff --git a/logger/log.go b/logger/log.go
new file mode 100644
index 000000000..baa3dfaf2
--- /dev/null
+++ b/logger/log.go
@@ -0,0 +1,39 @@
+package logger
+
+import (
+ "fmt"
+ "io"
+ "log"
+ "os"
+
+ "github.com/ethereum/go-ethereum/ethutil"
+)
+
+func openLogFile(datadir string, filename string) *os.File {
+ path := ethutil.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, logFormat string) LogSystem {
+ var writer io.Writer
+ if logFile == "" {
+ writer = os.Stdout
+ } else {
+ writer = openLogFile(datadir, logFile)
+ }
+
+ var sys LogSystem
+ switch logFormat {
+ case "raw":
+ sys = NewRawLogSystem(writer, 0, LogLevel(logLevel))
+ default:
+ sys = NewStdLogSystem(writer, log.LstdFlags, LogLevel(logLevel))
+ }
+ AddLogSystem(sys)
+
+ return sys
+}