1package cliutil
2
3import (
4 "io"
5
6 ipfslog "github.com/ipfs/go-log/v2"
7 "go.uber.org/zap/zapcore"
8)
9
10func SetIpfsWriter(out io.Writer, format string, level string) {
11 var ze zapcore.Encoder
12 switch format {
13 case "json":
14 ze = zapcore.NewJSONEncoder(zapcore.EncoderConfig{})
15 case "text":
16 ze = zapcore.NewConsoleEncoder(zapcore.EncoderConfig{})
17 default:
18 ze = zapcore.NewConsoleEncoder(zapcore.EncoderConfig{})
19 }
20 var zl zapcore.LevelEnabler
21 switch level {
22 case "debug":
23 zl = zapcore.DebugLevel
24 case "info":
25 zl = zapcore.InfoLevel
26 case "warn":
27 zl = zapcore.WarnLevel
28 case "error":
29 zl = zapcore.ErrorLevel
30 default:
31 zl = zapcore.InfoLevel
32 }
33 nc := zapcore.NewCore(ze, zapcore.AddSync(out), zl)
34 ipfslog.SetPrimaryCore(nc)
35}