码农后生

  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

GO语言基础实现

package main

import (
	"fmt"
	"os"
	"net/http"
	"io"
	"time"
	"github.com/gin-gonic/gin"
)

//处理机制
func helloHandler(c *gin.Context) {
	c.JSON(http.StatusOK, gin.H{
		"message": "Hello www.topgoer.com",
	})
}

// SetupRouter 配置路由信息
func SetupRouter() *gin.Engine {
	r := gin.Default()
	//路由
	r.GET("/topgoer", helloHandler)
	//路由
	r.POST("/ping", func(c *gin.Context) {
		c.JSON(200, gin.H{
			"message": "pong",
		})
	})
	return r
}

func main(){
	//日志文件
	logfile, _ := os.Create("./agent.log")
	defer logfile.Close()

	//将日志写入日志文件和输出设备
	gin.DefaultWriter = io.MultiWriter(logfile, os.Stdout)

	//将日志写入日志文件
	//gin.DefaultWriter = io.MultiWriter(logfile)
	router := SetupRouter()

	//使用中间件
	//日志格式
	router.Use(gin.LoggerWithFormatter(func(param gin.LogFormatterParams) string {

        // 你的自定义格式
        return fmt.Sprintf("%s - [%s] \"%s %s %s %d %s \"%s\" %s\"\n",
                param.ClientIP,
                param.TimeStamp.Format(time.RFC1123),
                param.Method,
                param.Path,
                param.Request.Proto,
                param.StatusCode,
                param.Latency,
                param.Request.UserAgent(),
                param.ErrorMessage,
        )
	}))
	
	//router.Run("可以设置端口")
	//router.Run(":8080")
	//默认端口8080
	router.Run()

}

转载地址

http://www.topgoer.com/gin框架/gin数据解析和绑定/json数据解析和绑定.html

posted on 2020-11-10 10:36  码农后生  阅读(285)  评论(0编辑  收藏  举报