go使用gin web框架 示例

1 go使用gin web框架,logrus日志 示例

package main

import (
	"encoding/json"
	"fmt"
	"github.com/gin-gonic/gin"
	"github.com/sirupsen/logrus"
	"net/http"
	"os"
)

func main() {

	log := logrus.New()

	// 设置日志级别
	log.SetLevel(logrus.DebugLevel)

	// 设置日志输出格式为JSON格式
	log.SetFormatter(&logrus.JSONFormatter{})

	// 设置日志输出到标准输出
	log.SetOutput(os.Stdout)

	file, err := os.OpenFile("logfile.log", os.O_CREATE|os.O_WRONLY|os.O_APPEND, 0666)
	if err == nil {
		log.SetOutput(file)
	} else {
		log.Info("Failed to open log file, using default stderr")
	}
	日志保存到文件
	//file, err := os.OpenFile("logfile.log", os.O_CREATE|os.O_WRONLY|os.O_APPEND, 0666)
	//if err != nil {
	//	log.Fatal(err)
	//}
	defer file.Close()
	log.SetOutput(file)
	// 创建一个Gin实例
	r := gin.Default()

	// 加载HTML模板文件
	r.LoadHTMLGlob("templates/*")

	// 定义路由和处理函数
	r.GET("/", func(c *gin.Context) {
		c.HTML(200, "index.html", gin.H{
			"title": "Gin HTML Demo",
		})
	})

	// 定义路由和处理函数
	r.GET("/login", func(c *gin.Context) {
		//程序逻辑
		name := c.Query("name")
		var title string = "Gin HTML Demo xxxxxxxxxx"

		fmt.Println("name", name, "title", title)
		//返回到指定html
		c.HTML(200, "login.html", gin.H{
			"title": title,
			"name":  name,
		})
	})

	// 定义路由和处理函数
	r.GET("/test", func(c *gin.Context) {
		//程序逻辑
		name := c.Query("name")
		log.Info("This is an info message name=", name)
		log.Error("This is an info message name=", name)
		// 返回json数据
		testJson(c, name)
	})

	// 启动服务
	err = r.Run(":9089")
	if err != nil {
		fmt.Println("启动错误")
		return
	}
}

// 返回json
func testJson(c *gin.Context, name string) {
	// 创建一个JSON对象
	jsonObj := make(map[string]interface{})
	jsonObj["name"] = name
	jsonObj["age"] = 30
	jsonObj["isStudent"] = false
	// 将JSON对象转换为JSON字符串
	jsonData, err := json.Marshal(jsonObj)
	if err != nil {
		fmt.Println("转换为JSON字符串时出错:", err)
		return
	}

	jsonString := string(jsonData)
	fmt.Println(jsonString)
	c.JSON(http.StatusOK, jsonObj)
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值