The zerolog package provides a fast and simple logger dedicated to JSON output.
package main
import(
"fmt"
"io"
"io/ioutil"
"strings"
"os"
"github.com/rs/zerolog"
"github.com/rs/zerolog/log"
"flag"
)
func main(){
//Stings
r :=strings.NewReader("Hello World")
fmt.Println(r.Len())
var buf []byte
buf = make([]byte,5)
read_len,err := r.Read(buf) //读取到buf中
fmt.Println("读取到的长度:" ,read_len)
if err!= nil {
fmt.Println("cuowu",err)
}
fmt.Println(buf)
fmt.Println(r.Len()) //返回未读的字符串长度
fmt.Println(r.Size()) //总的字符串长度
//读取给定偏移off字节后的剩余信息到b中
bufAt := make([]byte,128)
r.ReadAt(bufAt,7)
fmt.Println(string(bufAt))
fmt.Println(r.Len()) //返回未读的字符串长度
//偏移
bufSeekv :=make([]byte,5)
r.Seek(-2,io.SeekCurrent)
r.Read(bufSeekv)
fmt.Println(string(bufSeekv))
//ReadAll 读取r中的所有数据
s :=strings.NewReader("mingming")
ra, _ :=ioutil.ReadAll(s)
fmt.Printf("%s", ra)
//WriteFile 向文件 filename中写入数据
fn := "c:\\Test.text"
ss :=[]byte("hello!")
ioutil.WriteFile(fn, ss, os.ModeAppend)
rf, _ :=ioutil.ReadFile(fn)
fmt.Printf("%s\n",rf)
// zerolog使用,设置日志等级
zerolog.TimeFieldFormat = zerolog.TimeFormatUnix
log.Info().Msg("hello world")
debug :=flag.Bool("debug" ,false , "sets log lebel to debug")
flag.Parse()
zerolog.SetGlobalLevel(zerolog.InfoLevel)
if *debug {
zerolog.SetGlobalLevel(zerolog.DebugLevel)
}
log.Debug().Msg("this happen when log level set to Debug")
log.Info().Msg("this happen shen log level set to Debug")
if e :=log.Debug(); e.Enabled() {
value := "bar"
e.Str("foo",value).Msg("some debug message")
}
// 使用logger
logger :=zerolog.New(os.Stderr).With().Timestamp().Logger()
logger.Info().Str("foo","bar").Msg("hello world!")
}