golang之zap探索

GO Web 编程:http://www.kancloud.cn/kancloud/web-application-with-golang/44105

我的golang工程:https://github.com/javahongxi/go.web.red.git

 

uber zap test

 

 

Go代码  

  1. package main  
  2.   
  3. import (  
  4.     "go.uber.org/zap"  
  5.     "time"  
  6.     "go.uber.org/zap/zapcore"  
  7.     "net/http"  
  8.     "bufio"  
  9.     "os"  
  10. )  
  11.   
  12. func main() {  
  13.     //logger, _ := zap.NewProduction()  
  14.     //defer logger.Sync() // flushes buffer, if any  
  15.     //sugar := logger.Sugar()  
  16.     //url := "www.baidu.com"  
  17.     //sugar.Infow("Failed to fetch URL.",  
  18.     //    // Structured context as loosely-typed key-value pairs.  
  19.     //    "url", url,  
  20.     //    "attempt", 3,  
  21.     //    "backoff", time.Second,  
  22.     //)  
  23.     //sugar.Infof("Failed to fetch URL: %s", url)  
  24.   
  25.     encoder_cfg := zapcore.EncoderConfig{  
  26.         // Keys can be anything except the empty string.  
  27.         TimeKey:        "T",  
  28.         LevelKey:       "L",  
  29.         NameKey:        "N",  
  30.         CallerKey:      "C",  
  31.         MessageKey:     "M",  
  32.         StacktraceKey:  "S",  
  33.         LineEnding:     zapcore.DefaultLineEnding,  
  34.         EncodeLevel:    zapcore.CapitalLevelEncoder,  
  35.         EncodeTime:     TimeEncoder,  
  36.         EncodeDuration: zapcore.StringDurationEncoder,  
  37.         EncodeCaller:   zapcore.ShortCallerEncoder,  
  38.     }  
  39.   
  40.     Curr_level := zap.NewAtomicLevelAt(zap.DebugLevel)  
  41.   
  42.     go func() {  
  43.         http.ListenAndServe(":9090", &Curr_level)  
  44.     }()  
  45.   
  46.   
  47.     custom_cfg := zap.Config{  
  48.         Level:            Curr_level,  
  49.         Development:      true,  
  50.         Encoding:         "console",  
  51.         EncoderConfig:    encoder_cfg,  
  52.         OutputPaths:      []string{"stderr", "qihu-secret-business.log"},  
  53.         ErrorOutputPaths: []string{"stderr"},  
  54.     }  
  55.   
  56.   
  57.     url := "www.baidu.com"  
  58.   
  59.     logger, _ := custom_cfg.Build()  
  60.     new_logger := logger.Named("qihu-secret-business")  
  61.     defer new_logger.Sync()  
  62.   
  63.     new_logger.Debug("adv_event_type_handle", zap.String("a", "1"))  
  64.     new_logger.Info("adv_event_type_handle",  
  65.         // Structured context as strongly-typed Field values.  
  66.         zap.String("url", url),  
  67.         zap.Int("attempt", 3),  
  68.         zap.Duration("backoff", time.Second),  
  69.     )  
  70.   
  71.     reader := bufio.NewReader(os.Stdin)  
  72.     for {  
  73.         data, _, _ := reader.ReadLine()  
  74.         command := string(data)  
  75.         if command == "start" {  
  76.             break  
  77.         }  
  78.     }  
  79.   
  80.   
  81.     new_logger.Debug("adv_event_type_handle", zap.String("b", "2"))  
  82.     new_logger.Info("adv_event_type_handle", zap.String("c", "3"))  
  83. }  
  84.   
  85. func TimeEncoder(t time.Time, enc zapcore.PrimitiveArrayEncoder) {  
  86.     enc.AppendString("[" + t.Format("2006-01-02 15:04:05") + "]")  
  87. }  

 

 

[2017-05-23 12:08:26]DEBUGadv_os_businesszap_t/zap_t.go:63adv_event_type_handle{"a": "1"}

[2017-05-23
12:08:26]INFOadv_os_businesszap_t/zap_t.go:69adv_event_type_handle{"url":
"www.baidu.com", "attempt": 3, "backoff": "1s"}

 

其他:进程启动管理supervisor, 日志分割logrotate, 性能监控https://github.com/grafana/grafana

 

/etc/supervisor.conf

[program:simpletest]

command=/home/shenhongxi/go/bin/a

autostart=true

autorestart=true

startsecs=10

 

;logfile=/home/shenhongxi/log/simpletest.log

 

/etc/logrotate.d/simpletest

/home/shenhongxi/go/*.log {

  missingok

  notifempty

  nocompress

  daily

  rotate 5

  size 204800

}

原文链接:[http://wely.iteye.com/blog/2375584]

时间: 2024-11-01 13:13:55

golang之zap探索的相关文章

docker(8):使用alpinelinux 构建 golang http 看看能有多小

1,alpine linux 非常小 首先 alpine 非常的小,安装上了bash 之后也才 5mb. golang 不需要其他的依赖,想看看是不是能在 alpine 上面跑呢. 搭建一个golang的环境,而不是把golang的环境放到alpine上面. 2,首先在centos 搭建golang环境 https://golang.org/doc/install 下载然后解压缩: tar -C /usr/local -xzf go1.7.4.linux-amd64.tar.gz 设置环境变量:

Golang /Go调试工具delve

安装 这里提供了支持的所有平台(操作系统)上安装Delve的说明. 请注意您必须安装Go 1.5或更高版本. 此外如果使用Go 1.5,您必须设置GO15VENDOREXPERIMENT = 1,然后再尝试安装. OSX 在OSX上插入 请使用以下步骤在OSX上构建和安装Delve Via Homebrew 如果你安装了HomeBrew,只需运行: $ brew install go-delve/delve/delve 手动安装 0) 必备条件 确保您具有正确的编译工具链. 这应该是简单的: x

DockOne微信分享(一二二):探索Kubernetes的网络原理及方案

本文讲的是DockOne微信分享(一二二):探索Kubernetes的网络原理及方案[编者的话]2016年ClusterHQ容器技术应用调查报告显示,一年来容器技术应用于生产的比例增长了96%,Kubernetes的使用率达到了40%,成为了最受欢迎的容器编排工具:那么Kubernetes到底是什么呢?它是一个用于容器集群的自动化部署.扩容以及运维的开源平台:那么通过Kubernetes能干什么呢?它能快速而有预期地部署你的应用,极速地扩展你的应用,无缝对接新的应用功能,节省资源,优化硬件资源的

ORA-01097错误解决办法及探索shutdown immediate

ORA-01097错误解决办法及探索shutdown immediate 很晚了要关机睡觉了,先把oralce 数据库关闭,结果出现下面的错误. SQL> shutdown immediate ORA-01097: cannot shutdown while in a transaction - commit or rollback first 提示说在一个事物未提交或者回滚前不能shutdown.我才想到我对一个测试用的表,进行了下面的更新而没有提交. SQL> update test01

ASP.NET底层架构探索之进入.NET运行时

进入.NET运行时的真正的入口发生在一些没有被文档记载的类和接口中(译著:当然,你可以用Reflector来查看J).除了微软,很少人知道这些接口,微软的家伙们也并不热衷于谈论这些细节,他们认为这些实现细节对于使用ASP.NET开发应用的开发人员并没有什么用处. 工作进程(IIS5中是ASPNET_WP.EXE,IIS6中是W3WP.EXE)寄宿.NET运行时和ISAPI DLL,它(工作进程)通过调用COM对象的一个小的非托管接口最终将调用发送到ISAPIRuntime类的一个实例上(译注:原

Swift 性能探索和优化分析

Swift 性能探索和优化分析 本文首发在 CSDN<程序员>杂志,订阅地址 http://dingyue.programmer.com.cn/. Apple 在推出 Swift 时就将其冠以先进,安全和高效的新一代编程语言之名.前两点在 Swift 的语法和语言特性中已经表现得淋漓尽致:像是尾随闭包,枚举关联值,可选值和强制的类型安全等都是 Swift 显而易见的优点.但是对于高效一点,就没有那么明显了.在 2014 年 WWDC 大会上 Apple 宣称 Swift 具有超越 Object

[喵咪Golang(1)]Go语言开篇

[喵咪Golang(1)]Go语言开篇 前言 哈喽大家好啊!喵咪我今天又来开坑了,最近学习和使用了go语言了一段时间,也在组合一些好的组件编写phalgo开发框架.在想是不是可以来写一个套关于go语言的文章和一些好的组件的介绍使用,虽然自己也是半桶水但是我相信在编写的过程中能给自己很多收获,最好也能帮助大家了解和熟悉golang这门语言,话不多说那么就开始今天的go语言之旅吧~ 附上: 喵了个咪的博客:w-blog.cn phalgo地址:github.com/wenzhenxi/phalgo

04.移动先行之谁主沉浮----XAML的探索

如果移动方向有任何问题请参考===> 异常处理汇总-移动系列(点) 移动先行之谁主沉浮? 带着你的Net飞奔吧! 链接======>(点)   XMAL引入 XAML 类似于 HTML,是一种特殊的XML语言 XAML本质上属于一种.NET Programming Language 主要应用在 Windows 8.Windows Phone.Silverlight 和 WPF 中   1.XMAL 命名空间的声明 分析一下头文件 详细注解 在属性里面改过名字后就会以x:开头 补充:xmlns(

开放共享:网商银行的运营探索及技术支撑

本文作者:网商银行首席信息官  唐家才 正文 我国经济正处于"三期叠加"的新常态,传统经济动能减速,经济增速放缓,消费经济和产业经济的升级迫在眉睫,创新创业(简称双创)正在迸发市场活力,以"互联网+"为代表的新经济业态正在超预期发展.全社会涌现了大批的双创者,他们在利用互联网技术与平台,创新产品与服务,注重客户体验,促进社会消费的供给侧改革.以这批双创者为代表的小微客群正在成长为国民经济的主力军之一,他们是当前金融需求最旺盛的一个客群.他们的需求呈现出"急