首页 > 其他分享 >golang开发

golang开发

时间:2024-05-17 17:20:18浏览次数:21  
标签:err ConfigT golang yaml 开发 Logger config logger

项目目录结构

demo

  config

    config.go

  conf

    config.yaml

  log

  main.go

代码

config.go

package config

import (
    "fmt"
    "github.com/toolkits/pkg/file"
    "github.com/toolkits/pkg/logger"
    "os"
)

type ConfigT struct {
    Logger Logger `yaml:"logger"`
    Info   Info   `yaml:"info"`
}
type Logger struct {
    Level     string `yaml:"level"`
    Dir       string `yaml:"dir"`
    KeepHours uint   `yaml:"keepHours"`
}
type Info struct {
    Name string `yaml:"name"`
    Age  int    `yaml:"age"`
}

var Config *ConfigT

func Init(c *ConfigT) {
    fb, err := logger.NewFileBackend(c.Logger.Dir)
    if err != nil {
        fmt.Println("cannot init logger:", err)
        os.Exit(1)
    }
    fb.SetRotateByHour(false)             // 关闭按小时滚动
    fb.SetKeepHours(c.Logger.KeepHours)   // 保留多少小时
    logger.SetLogging(c.Logger.Level, fb) // 设置日志级别
}

func GetConfig() *ConfigT {
    err := file.ReadYaml("conf/config.yaml", &Config)
    if err != nil {
        panic("读取配置config.yaml失败")
    }
    return Config
}

config.yaml

logger:
  level: "DEBG"
info:
  name: "tom"
  age: 23

 

标签:err,ConfigT,golang,yaml,开发,Logger,config,logger
From: https://www.cnblogs.com/fighting-ljy/p/18198145

相关文章

  • 012_尚硅谷_Windows下搭建Go开发环境
    1.Windows下搭建Go开发环境-安装和配置SDK1.1介绍SDK1)SDK(软件开发工具包)2)SDK是提供给开发人员使用的,其中包含了对应开发语言的工具包1.2SDK下载1)下载地址:Golang中国  https://go.p2hp.com/go.dev/dl/2)如何选择对应的SDK......
  • GO实名认证接口开发示例、接口集成、身份认证
    翔云身份证实名认证接口,通过核验身份证二要素、三要素、三要素+现场人像的方式,实时联网核验身份信息的真伪。想象一下,无需耗费大量的人力物力,只需简单几步,即可将翔云身份证实名认证接口集成到您的应用中。无论是用户注册还是支付验证,都无需再让用户手动输入身份信息,线上......
  • 【Linux】《VMware17搭建Ubuntu.22.04-Rust开发环境》
    下载VMware17安装包下载链接:创建虚拟机之后都默认就可以了。进入系统设置登录账号和密码以及修改下语言,剩余都默认即可。设置中文界面设置中文输入法接下来开始设置输入法切换快捷键设置使用Ctrl+Alt+T打开终端,输入ibus-setup重启,看一下是......
  • 关于前后端项目分离开发的一些思考
    开发模式前后端分离开发前端使用vue或其他的一些前端框架进行页面开发,进行打包为html文件后端使用SpringBoot开发后,进行打包也就是分离开发,分开打包部署方式分开部署前端代码结合Nginx进行部署,Nginx将请求转发到后端服务器中;结合部署这种个人认为是单机部署的一种方式,......
  • Dapr 与 .NET Aspire 结合使用获得无与伦比的本地开发体验
    Dapr提供了一组构建块,用于抽象分布式系统中常用的概念。这包括服务、缓存、工作流、复原能力、机密管理等之间的安全同步和异步通信。不必自己实现这些功能,可以消除样板,降低复杂性,并允许您专注于开发业务功能。在您的时间有限并且您只想进行实验的情况下,在Dapr初始设置上花费大量......
  • golang context 特点,和自己定义分类有什么区分
     context包的特点包括:1信号传递:取消信号:context提供了一个取消机制,允许一个父级goroutine在必要的时候通知其子级goroutines任务应该停止执行。 截止时间:可以设置一个截止时间,当超过这个时间时,上下文自动变为取消状态。 超时:类似截止时间,但通常基于从当前......
  • RK3576开发板NPU分享:探索6T强大性能,智能化应用无限可能!
    RKNNSDK快速上手指南开发板:ArmSoM-W3,ArmSoM-Sige7,ArmSoM-Sige5,ArmSoM-AIM7OS:Debian11/12目的:本文介绍如何使用rk的npusdk。作为瑞芯微8nm高性能AIOT平台,RK3576/RK3588NPU性能可谓十分强大,6TOPS设计能够实现高效的神经网络推理计算。这使得RK3576/RK3588在图像识别......
  • 新浪SAE为例-源代码的开发
    源代码就是指编写的最原始程序的代码。我们所运行的软件是要经过编写的,程序员编写程序的过程中需要他们的“语言”。就像音乐家用五线谱,建筑师用图纸,那程序员的工作的语言就是“源码”了。新浪SAE是新浪研发中心于2009年8月开始内部开发,并在2009年11月3日正式推出第一个Alpha版本......
  • 一文搞懂RESTful开发
    REST(RepresentationalStateTransfer),表现形式状态转换,它是一种软件架构风格当我们想表示一个网络资源的时候,可以使用两种方式:传统风格资源描述形式http://localhost/user/getById?id=1查询id为1的用户信息http://localhost/user/saveUser保存用户信息REST风......
  • macOS开发,如何设置动态桌面壁纸(动态壁纸酷)
    1.首先要先建立一个全屏的窗口1//获取窗口控制器2NSStoryboard*storyboard=[NSStoryboardstoryboardWithName:@"Main"bundle:[NSBundlemainBundle]];3WallpaperWindowController*wwc=[storyboardinstantiateControllerWithIdentifier:@"AboutWindowController......