duanchuli5647 2017-11-27 15:47
浏览 554
已采纳

如何在Golang中使用调试日志

I’ve application which should use log in state of debug. i.e. all the logs that I want to provide is like log.debug

I’ve read about it and find the following

https://github.com/Sirupsen/logrus
https://github.com/uber-go/zap

My question is how should I “tell” to the program that now run at debug mode an then all the logs will be printed since this I believe should come from outside … example will be very helpful since Im new to golfing .

  • 写回答

2条回答 默认 最新

  • donglu2523 2017-11-27 16:29
    关注

    Ok, a really simple example of the approach I suggested in the comment:

    package main
    
    import (
        "os"
    
        "github.com/sirupsen/logrus"
    )
    
    func init() {
        lvl, ok := os.LookupEnv("LOG_LEVEL")
        // LOG_LEVEL not set, let's default to debug
        if !ok {
            lvl = "debug"
        }
        // parse string, this is built-in feature of logrus
        ll, err := logrus.ParseLevel(lvl)
        if err != nil {
            ll = logrus.DebugLevel
        }
        // set global log level
        logrus.SetLevel(ll)
    }
    
    func main() {
        logrus.Debug("Will only be visible if the loglevel permits it")
    }
    

    The original comment:

    Check codebases that are out there. In go, the common way to do that is to load configuration via environment variables (eg LOG_LEVEL, and use os.Getenv or a config package to load the value). That's why logrus for example allows you to set log levels via ints or strings.

    Please, please: before you ask a question, read the basic info about the packages you use. Even the github repo for logrus' main README contains an example setting the log level to a specific level:

    https://github.com/sirupsen/logrus#example

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

悬赏问题

  • ¥100 set_link_state
  • ¥15 虚幻5 UE美术毛发渲染
  • ¥15 CVRP 图论 物流运输优化
  • ¥15 Tableau online 嵌入ppt失败
  • ¥100 支付宝网页转账系统不识别账号
  • ¥15 基于单片机的靶位控制系统
  • ¥15 真我手机蓝牙传输进度消息被关闭了,怎么打开?(关键词-消息通知)
  • ¥15 装 pytorch 的时候出了好多问题,遇到这种情况怎么处理?
  • ¥20 IOS游览器某宝手机网页版自动立即购买JavaScript脚本
  • ¥15 手机接入宽带网线,如何释放宽带全部速度