摘要: Go工程化 阅读全文
posted @ 2020-11-20 20:42 Terry- 阅读(108) 评论(0) 推荐(0)
摘要: 输入一棵二叉树,求该树的深度。从根结点到叶结点依次经过的结点(含根、叶结点)形成树的一条路径,最长路径的长度为树的深度。(来自<<剑指offer>>) /* struct TreeNode { int val; struct TreeNode *left; struct TreeNode *righ 阅读全文
posted @ 2020-11-20 17:32 Terry- 阅读(217) 评论(0) 推荐(0)
摘要: package main import ( "fmt" ) type Student struct { id int name string } func main() { //比较 s1 := Student{1, "yy"} s2 := Student{2, "yang"} s3 := Stud 阅读全文
posted @ 2020-11-20 16:28 Terry- 阅读(299) 评论(0) 推荐(0)
摘要: logrus介绍 logrus配置 日志打印 HOOK机制 Gin日志 Fatal处理 线程安全 logrus介绍 golang标准库的日志框架非常简单,仅仅提供了print,panic和fatal三个函数。对于更精细的日志级别、日志文件分割,以及日志分发等方面,并没有提供支持。在golang的世界 阅读全文
posted @ 2020-11-19 23:18 Terry- 阅读(610) 评论(0) 推荐(0)
摘要: 为什么要使用日志 记录参数信息 猜测用户行为 复现系统bug并修复 func main() { // 禁用控制台颜色 gin.DisableConsoleColor() // 创建记录日志的文件 f, _ := os.Create("gin.log") gin.DefaultWriter = io. 阅读全文
posted @ 2020-11-19 19:19 Terry- 阅读(1265) 评论(0) 推荐(0)
摘要: 什么是分组 对router创建Group(就是分组), 对同一分组会拥有同一前缀和同一中间件 写法 eg: r := gin.Default() v1 := r.Group("/v1") v1.POST("/login",loginEndpoint) v1.POST("/submit",submit 阅读全文
posted @ 2020-11-19 18:02 Terry- 阅读(1182) 评论(0) 推荐(0)
摘要: 连接MySQL package main import ( "database/sql" "fmt" _ "github.com/go-sql-driver/mysql" ) // 定义一个全局对象db var db *sql.DB // 定义一个初始化数据库的函数 func initDB() (e 阅读全文
posted @ 2020-11-19 17:18 Terry- 阅读(111) 评论(0) 推荐(0)
摘要: Viper是适用于Go应用程序的完整配置解决方案。它被设计用于在应用程序中工作,并且可以处理所有类型的配置需求和格式。 Viper Viper是适用于Go应用程序的完整配置解决方案。它被设计用于在应用程序中工作,并且可以处理所有类型的配置需求和格式。 鉴于viper库本身的README已经写得十分详 阅读全文
posted @ 2020-11-18 22:34 Terry- 阅读(535) 评论(0) 推荐(0)
摘要: 在多年的 Go 语言实践积累后逐渐形成了一种典型项目结构,如下图所示: 上面就是一个支持构建二进制可执行文件(在 src 下)的典型 Go 项目的结构。 1 src 目录: 存放项目要编译构建的可执行文件对应的 main 包的源文件。如果有多个可执行文件需要构建,每个可执行文件的 main 包单独放 阅读全文
posted @ 2020-11-18 13:07 Terry- 阅读(218) 评论(0) 推荐(0)
摘要: 在http的功能里添加log_format模块,内容如下: log_format main escape=json '{ "@timestamp": "$time_iso8601", ' '"remote_addr": "$remote_addr",' '"request_time": "$requ 阅读全文
posted @ 2020-11-17 22:32 Terry- 阅读(718) 评论(0) 推荐(0)