妈蛋,整个go社区就没有一个正常的日志库?

  1. 一个logger同时向console,文件记录
  2. 打印所在文件和行号
  3. 切片
  4. 简单的输出格式的定义方式
  5. 太特么惨了
    这些东西在很多语言里简直是必备的,原生的
    logrus最特么恶心,行号不能打印,还特么哲学
    还有那个logrus_mate,说的能用logrus打印行号,文件,github上的example都跑不通…

共 5 个回复


heimeil

package main

import (
    "fmt"
    "io"
    "log"
    "os"
)

type writer struct {
    io.Writer
}

// 3
func (w *writer) Write(p []byte) (n int, err error) {
    fmt.Println(string(p))
    return w.Writer.Write(p)
}

func main() {
    logFile, err := os.Create("hello.log")
    if err != nil {
        panic(err)
    }
    defer logFile.Close()

    // 1
    w := io.MultiWriter(os.Stdout, logFile)

    // 4 2
    logger := log.New(&writer{Writer: w}, "| GOGOGO | ", log.Llongfile)

    logger.Println("Hello World!")
}

1、2用标准库的log直接能满足,3、4可能还是要看具体需求,但自己实现这种功能的log还是不难的。

# 0

ArchrSaber

加1878145574,我们有一个比较好用的

# 1

seefan

github.com/cihub/seelog

# 2

JiaoZiLang

感觉现在对于log库大家都是自己公司有自己的了,怎么就没有一个比较通用的呢

# 3

xgfone

可以试试 gloglog15,前者是 Google 自己的,感觉这两个用着还可以,我也不是太喜欢 logrus

# 4