go第三方常用包
配置
go-ini/ini
用于读取 ini 格式配置文件。
地址:https://github.com/Go-ini/ini
tomal
用于读取 conf 格式配置文件。
地址:https://github.com/BurntSushi/toml
go-yaml/yaml
用于读取 yaml 格式配置文件。
地址:https://github.com/go-yaml/yaml
wblog/system.go at master · wangsongyan/wblog
https://github.com/wangsongyan/wblog/blob/master/system/system.go
type Configuration struct {
Addr string `yaml:"addr"`
}
var config *Configuration
func LoadConfig() error {
data, err := ioutil.ReadFile("conf/conf.yaml")
if err != nil {
return err
}
err = yaml.Unmarshal(data, &config)
if err != nil {
return err
}
}
func GetConfig() *Configuration {
return config
}
日志
https://github.com/sirupsen/logrus
logrus是用Go语言实现的一个日志系统,与标准库log完全兼容并且核心API很稳定,是Go语言目前最活跃的日志库。https://github.com/uber-go/zap
快速的、结构化的、支持分级的日志库。https://github.com/golang/glog
分级记录日志的库。https://github.com/cihub/seelog
seelog是用Go语言实现的一个日志系统,它提供了一些简单的函数来实现复杂的日志分配、过滤和格式化。
beego/logs
文档:https://beego.me/docs/module/logs.md
示例:
package util
import (
"errors"
"fmt"
"github.com/astaxie/beego/logs"
)
var Logger *logs.BeeLogger
func InitLog() error {
Logger = logs.NewLogger(10) //缓冲区的大小
Logger.SetLevel(logs.LevelDebug) // 设置日志写入缓冲区的等级:Debug级别(最低级别,所以所有log都会输入到缓冲区)
Logger.EnableFuncCallDepth(true) //显示行号
jsonConfig := fmt.Sprintf(`{"filename":"%s/log/sample.log", "daily":true,"maxdays":7,"rotate":true}`, GetCurrPath())
err := Logger.SetLogger(logs.AdapterMultiFile, jsonConfig)
if err != nil {
return errors.New("init log error:" + err.Error())
}
Logger.Async(10) //设置缓冲 chan 的大小
return nil
}
func GetCurrPath() string {
file, _ := exec.LookPath(os.Args[0])
path, _ := filepath.Abs(file)
index := strings.LastIndex(path, string(os.PathSeparator))
ret := path[:index]
return ret
}
logrus
seelog
logger, err := log.LoggerFromConfigAsFile("conf/seelog.xml")
if err != nil {
return err
}
log.ReplaceLogger(logger)
//start
seelog.Debug("something...")
配置文件?
详见:https://astaxie.gitbooks.io/build-web-application-with-golang/zh/12.1.html
Session
目前Go标准包没有为session提供任何支持,需要自行实现。实现方法详见:https://astaxie.gitbooks.io/build-web-application-with-golang/content/zh/06.2.html
也可以使用beego框架里已经实现的:
go get github.com/astaxie/beego/session
详见:https://beego.me/docs/module/session.md
日期
https://github.com/jinzhu/now
Now 是一个 Go 语言的时间工具集。https://github.com/uniplaces/carbon
简单的时间扩展程序,有很多有用的方法,是 PHP Carbon 库的接口。
https://github.com/go-gomail/gomail
Gomail 是一个非常简单且强大的库,用于发送电子邮件。https://github.com/jordan-wright/email
一个健壮的、灵活的 email 库。https://github.com/matcornic/hermes
用于生成干净、响应式 HTML e-mail模板。
示例:
package email
import (
"gopkg.in/gomail.v2"
"strconv"
)
//发送邮件
func SendMail(mailTo []string, subject string, body string) error {
//定义邮箱服务器连接信息,如果是阿里邮箱 pass填密码,qq邮箱填授权码
mailConn := map[string]string{
"user": "",
"pass": "",
"host": "",
"port": "",
}
port, _ := strconv.Atoi(mailConn["port"]) //转换端口类型为int
m := gomail.NewMessage()
m.SetHeader("From", mailConn["user"]) //这种方式可以添加别名
m.SetHeader("To", mailTo...) //发送给多个用户
m.SetHeader("Subject", subject) //设置邮件主题
m.SetBody("text/html", body) //设置邮件正文
d := gomail.NewDialer(mailConn["host"], port, mailConn["user"], mailConn["pass"])
err := d.DialAndSend(m)
return err
}
定时器
https://github.com/robfig/cron
参考
1、Build web application with Golang
https://astaxie.gitbooks.io/build-web-application-with-golang/zh/
2、avelino/awesome-go: A curated list of awesome Go frameworks, libraries and software
https://github.com/avelino/awesome-go
3、jobbole/awesome-go-cn: Go 资源大全中文版
https://github.com/jobbole/awesome-go-cn
4、hackstoic/golang-open-source-projects: 为互联网IT人打造的中文版awesome-go
https://github.com/hackstoic/golang-open-source-projects
5、Search · awesome-go
https://github.com/search?q=awesome-go
go第三方常用包的更多相关文章
- eclipse 项目引入第三方jar包 3种方法
我们在用Eclipse开发程序的时候,经常要用到第三方jar包.引入jar包不是一个小问题,由于jar包位置不清楚,而浪费时间.下面配图说明3种Eclipse引入jar包的方式. 1.最常用的普通操作 ...
- 【转】Mapreduce部署与第三方依赖包管理
Mapreduce部署是总会涉及到第三方包依赖问题,这些第三方包配置的方式不同,会对mapreduce的部署便捷性有一些影响,有时候还会导致脚本出错.本文介绍几种常用的配置方式: 1. HADOOP_ ...
- Mapreduce部署与第三方依赖包管理
Mapreduce部署是总会涉及到第三方包依赖问题,这些第三方包配置的方式不同,会对mapreduce的部署便捷性有一些影响,有时候还会导致脚本出错.本文介绍几种常用的配置方式: 1. HADOOP_ ...
- Maven的默认中央仓库以及修改默认仓库&配置第三方jar包从私服下载
当构建一个Maven项目时,首先检查pom.xml文件以确定依赖包的下载位置,执行顺序如下: 1.从本地资源库中查找并获得依赖包,如果没有,执行第2步. 2.从Maven默认中央仓库中查找并获得依赖包 ...
- Eclipse如何导入第三方jar包
本文转自:http://blog.csdn.net/mazhaojuan/article/details/21403717 我们在用Eclipse开发程序的时候,经常要用到第三方jar包.引入jar ...
- 转:Maven的默认中央仓库以及修改默认仓库&配置第三方jar包从私服下载
当构建一个Maven项目时,首先检查pom.xml文件以确定依赖包的下载位置,执行顺序如下: 1.从本地资源库中查找并获得依赖包,如果没有,执行第2步. 2.从Maven默认中央仓库中查找并获得依赖包 ...
- python安装第三方的包
转载自:http://blog.csdn.net/xyqzki/article/details/38414433 第一种基本安装方法 1 下载第三方包,解压 2 在命令提示符里输入cmd,然后用cd进 ...
- Node.js 安装第三方模块包(npm),通过 package.json配置信息安装项目依赖的模块
npm下载安装的第三方模块包官网(提供包名和使用方法):https://www.npmjs.com/ 淘宝镜像(国内,比较快):https://npm.taobao.org/ commonjs01.j ...
- flutter如何使用配置文件pubspec.yaml(位于项目根目录)来管理第三方依赖包
官方文档 在软件开发中,很多时候有一些公共的库或SDK可能会被很多项目用到,因此,将这些代码单独抽到一个独立模块,然后哪个项目需要使用时再直接集成这个模块,便可大大提高开发效率.很多编程语言或开发工具 ...
随机推荐
- 一些iOS面试基础题总结
一些iOS面试基础题总结 目录 多线程 AutoLayout objc_msgSend Runtime 消息转发 Category NSObject 与 objc_class Runloop Auto ...
- 高效能Windows人士的N个习惯之一:启动篇
接触电脑十多年,经历了各种折腾阶段,这几年开始沉静下来,不再追求花哨的界面与应用,只注重工作的效率,逐渐养成了一套自己的操作习惯,感觉不错,特撰文分享.标题借用了一下<高效能人士的七个习惯> ...
- 陪诊App,陪孝子找回人性
2015年开始,越来越多的陪诊App开始上线,纷纷迎来了自己的第一批用户,同时,也迎来了大量资本的青睐,有些名气的问诊app甚至能单轮获得超过1000万元的融资,事实上,投资者是否青睐,简直就是中国新 ...
- 二手iPhone,为什么没有火?
据相关媒体报道,日前苹果准备向印度市场销售二手iPhone,以提高自己在这个市场内的竞争力,但却遭遇到了强烈的反对,首先是印度本土手机制造商担心二手iPhone会冲击他们的销售,让其本就微薄的利润更加 ...
- 数据大爆炸:KDD 2016
2016"> 饕餮盛宴 ACM SIGKDD国际会议(简称KDD)是数据挖掘领域的顶级国际会议,由ACM (计算机协会)的数据挖掘及知识发现专委会(SIGKDD)负责组织筹办.在现今如 ...
- 痞子衡嵌入式:恩智浦i.MX RT1xxx系列MCU启动那些事(11.3)- FlexSPI NOR连接方式大全(RT1010)
大家好,我是痞子衡,是正经搞技术的痞子.今天痞子衡给大家介绍的是恩智浦i.MX RT1010的FlexSPI NOR启动的连接方式. 在写完 <FlexSPI NOR启动连接方式(RT1015/ ...
- iMX287A基于嵌入式Qt的新冠肺炎疫情监控平台
目录 1.前言 2.数据接口的获取 3.Qt界面的实现 4.在开发板上运行Qt程序 5.最终效果 6.代码下载 @ 1.前言 之前我使用在桌面版本Qt实现了肺炎疫情监控平台:基于Qt的新冠肺炎疫情数据 ...
- 前端每日实战:70# 视频演示如何用纯 CSS 创作一只徘徊的果冻怪兽
效果预览 按下右侧的"点击预览"按钮可以在当前页面预览,点击链接可以全屏预览. https://codepen.io/comehope/pen/VdOKQG 可交互视频 此视频是可 ...
- Python基础-求两个字符串最长公共前轴
最长公共前缀,输入两个字符串,如果存在公共前缀,求出最长的前缀,如果没有输出no.如“distance”和“discuss”的最长公共前缀是“dis”. s1 = input('请输入第1个字符串-- ...
- 运维介绍以及虚拟机,centos安装
运维的职责 1.企业的数据安全 2.网站7*24小时运行 3.企业服务好 服务器 服务器尺寸: 高度为单位:U(unit)1U=1.75英寸=4.45cm 服务器的分类: 机架式服务器 刀片式服务器 ...