【问题标题】:How to get rid of Spaces between logs when using 'logrus' package使用'logrus'包时如何摆脱日志之间的空格
【发布时间】:2016-04-16 14:49:57
【问题描述】:

所以我开始使用“logrus”。 我将它设置在我自己的记录器包中,如下所示:

    package logger

import(
     log "github.com/Sirupsen/logrus"

)


func InitLogger() {
    var textFormatter = new(log.TextFormatter)
    textFormatter.TimestampFormat = "2006-01-02 15:04:05"
    textFormatter.ForceColors = true
    textFormatter.FullTimestamp = true

    log.SetFormatter(textFormatter)
}


func Printf(format string, v ...interface{}) {
    log.Printf(format, v...)
}

func Fatalf(format string, v ...interface{}) {
    log.Fatalf(format, v...)
}

func Panicf(format string, v ...interface{}) {
    log.Panicf(format, v...)
}

func Debugf(format string, v ...interface{}) {
    log.Debugf(format, v...)

(对于所有 logrus 日志函数都是这样的,看不到 将它们全部粘贴在这里,但你明白了......)

在我的项目中使用它:

import(
    log "logger"
)

除了打印的日志在它们之间带有行空间之外,一切都是桃色的:

INFO[2016-04-16 17:32:51] pathPrefix: /app/
pathValue: {js ./app/}

INFO[2016-04-16 17:32:51] pathPrefix: /node_modules/
pathValue: {js ./node_modules/}

INFO[2016-04-16 17:32:51] Listening for HTTP on tcp (0.0.0.0:8080)     
INFO[2016-04-16 17:38:02] Starting HomeHandler                         
INFO[2016-04-16 17:38:02] GET / Index 4.769735ms

INFO[2016-04-16 17:38:02] Starting AuthCheckHandler                    
ERRO[2016-04-16 17:38:02] Failed getting cookie from user: http: named cookie not present

INFO[2016-04-16 17:38:02] GET /auth AuthCheckHandler 67.79µs

INFO[2016-04-16 17:38:02] Starting AuthCheckHandler                    
ERRO[2016-04-16 17:38:02] Failed getting cookie from user: http: named cookie not present

INFO[2016-04-16 17:38:02] GET /auth AuthCheckHandler 82.195µs

我怎样才能摆脱这些空间? 在文档/谷歌或此处找不到任何解决方案 所以我认为我错过了一些非常愚蠢的事情......

谢谢

【问题讨论】:

    标签: go


    【解决方案1】:

    当您传递字符串格式时,您似乎正在传递换行符。

    func main() {
    
      x := 0
      logger.InitLogger()
    
      logger.Printf("%s", "TEST1")
      logger.Printf("%s", "TEST2")
    
      if x == 0 {
          logger.Printf("%s", "TEST3")
          logger.Printf("%s", "TEST4")
          logger.Printf("%s", "TEST5")
      }
    }
    

    返回:

    go run main.go
    INFO[2016-04-16 12:40:30] TEST1
    INFO[2016-04-16 12:40:30] TEST2
    INFO[2016-04-16 12:40:30] TEST3
    INFO[2016-04-16 12:40:30] TEST4
    INFO[2016-04-16 12:40:30] TEST5
    

    【讨论】:

    • 我做@Stantonnet。因为我使用了原始的 go "log" 包,并且我的所有日​​志都以 \n 结尾,例如:log.Printf("Failed do somthing with error: %s\n", err) 没有意识到 logrus 自己处理新行。谢谢
    【解决方案2】:

    您确定在发送到记录器包的某些消息中没有意外地包含新行吗?

    【讨论】:

      猜你喜欢
      • 2015-01-08
      • 1970-01-01
      • 2023-04-01
      • 1970-01-01
      • 1970-01-01
      • 2011-01-31
      • 2023-03-08
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多