Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/google-cloud-platform/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Google app engine Go应用程序引擎的更换“;google.golang.org/appengine/log“;包,有日志级别吗?_Google App Engine_Google Cloud Platform_Google Cloud Logging_Google App Engine Go_Google App Engine Golang - Fatal编程技术网

Google app engine Go应用程序引擎的更换“;google.golang.org/appengine/log“;包,有日志级别吗?

Google app engine Go应用程序引擎的更换“;google.golang.org/appengine/log“;包,有日志级别吗?,google-app-engine,google-cloud-platform,google-cloud-logging,google-app-engine-go,google-app-engine-golang,Google App Engine,Google Cloud Platform,Google Cloud Logging,Google App Engine Go,Google App Engine Golang,我注意到,根据此处的文档,此软件包已弃用: 通过简单的打印,登录Go 1.12+而不丢失日志级别的正确方法是什么?(调试/信息/警告/错误/关键等)您至少有两种解决方案: 使用 使用一个通用的日志框架(比如)和一个特殊的Stackdriver适配器,在Stackdriver日志中使用正确的格式和级别的日志 使用cloud.google.com/go/logging 我认为这是默认的解决方案: 导入“cloud.google.com/go/logging” ctx:=context.Backgro

我注意到,根据此处的文档,此软件包已弃用:


通过简单的打印,登录Go 1.12+而不丢失日志级别的正确方法是什么?(调试/信息/警告/错误/关键等)

您至少有两种解决方案:

  • 使用
  • 使用一个通用的日志框架(比如)和一个特殊的Stackdriver适配器,在Stackdriver日志中使用正确的格式和级别的日志
  • 使用cloud.google.com/go/logging 我认为这是默认的解决方案:

    导入“cloud.google.com/go/logging”
    ctx:=context.Background()
    client,err:=logging.NewClient(ctx,“我的项目”)
    记录器:=client.logger(“我的日志”)
    logger.Log(logging.Entry{Payload:“发生了什么事!”,严重性:logging.Info})
    
    但是每次您想要记录某个内容时,创建一个
    条目
    对象可能会很乏味。如果只想编写
    log.Debug
    log.Info
    ,当然可以创建函数
    logDebug
    logInfo
    ,等等,但也可以使用另一种解决方案(基于logrus)

    使用logrus和Stackdriver适配器 正如我所说,您可以使用)这是登录Go项目的常见方法。但是您需要做一些小的修改,将默认文本日志转换为Stackdriver可以理解的日志条目格式

    导入(
    日志“github.com/sirupsen/logrus”
    stackdriver“github.com/TV4/logrus stackdriver格式化程序”//adapter
    )
    log.SetFormatter(stackdriver.NewFormatter())
    log.SetLevel(log.DebugLevel)//默认值为Info
    Debug(“这是Debug”)
    log.Info(“这是Info”)
    log.Error(“这是错误”)
    log.Warn(“这是Warn”)
    
    结果如下(注意正确的级别):


    您至少有两种解决方案:

  • 使用
  • 使用一个通用的日志框架(比如)和一个特殊的Stackdriver适配器,在Stackdriver日志中使用正确的格式和级别的日志
  • 使用cloud.google.com/go/logging 我认为这是默认的解决方案:

    导入“cloud.google.com/go/logging”
    ctx:=context.Background()
    client,err:=logging.NewClient(ctx,“我的项目”)
    记录器:=client.logger(“我的日志”)
    logger.Log(logging.Entry{Payload:“发生了什么事!”,严重性:logging.Info})
    
    但是每次您想要记录某个内容时,创建一个
    条目
    对象可能会很乏味。如果只想编写
    log.Debug
    log.Info
    ,当然可以创建函数
    logDebug
    logInfo
    ,等等,但也可以使用另一种解决方案(基于logrus)

    使用logrus和Stackdriver适配器 正如我所说,您可以使用)这是登录Go项目的常见方法。但是您需要做一些小的修改,将默认文本日志转换为Stackdriver可以理解的日志条目格式

    导入(
    日志“github.com/sirupsen/logrus”
    stackdriver“github.com/TV4/logrus stackdriver格式化程序”//adapter
    )
    log.SetFormatter(stackdriver.NewFormatter())
    log.SetLevel(log.DebugLevel)//默认值为Info
    Debug(“这是Debug”)
    log.Info(“这是Info”)
    log.Error(“这是错误”)
    log.Warn(“这是Warn”)
    
    结果如下(注意正确的级别):


    谢谢!是否期望
    context.Background()
    能够在1.12+运行时通过多个请求生存下来,即使是对于App Engine Standard?很抱歉,在这一点上我无法帮助您:/谢谢!是否期望
    context.Background()
    能够在1.12+运行时的多个请求中存活下来,即使是对于App Engine Standard?很抱歉,在这一点上我无法帮助您:/