...
1 package main
2
3 import (
4 "compress/zlib"
5 "flag"
6 "io"
7 "log"
8 "os"
9 "time"
10
11 "github.com/rs/zerolog"
12 )
13
14 func writeLog(fname string, count int, useCompress bool) {
15 opFile := os.Stdout
16 if fname != "<stdout>" {
17 fil, _ := os.Create(fname)
18 opFile = fil
19 defer func() {
20 if err := fil.Close(); err != nil {
21 log.Fatal(err)
22 }
23 }()
24 }
25
26 var f io.WriteCloser = opFile
27 if useCompress {
28 f = zlib.NewWriter(f)
29 defer func() {
30 if err := f.Close(); err != nil {
31 log.Fatal(err)
32 }
33 }()
34
35 }
36
37 zerolog.TimestampFunc = func() time.Time { return time.Now().Round(time.Second) }
38 log := zerolog.New(f).With().
39 Timestamp().
40 Logger()
41 for i := 0; i < count; i++ {
42 log.Error().
43 Int("Fault", 41650+i).Msg("Some Message")
44 }
45 }
46
47 func main() {
48 outFile := flag.String("out", "<stdout>", "Output File to which logs will be written to (WILL overwrite if already present).")
49 numLogs := flag.Int("num", 10, "Number of log messages to generate.")
50 doCompress := flag.Bool("compress", false, "Enable inline compressed writer")
51
52 flag.Parse()
53
54 writeLog(*outFile, *numLogs, *doCompress)
55 }
56
View as plain text