• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

GO日志追加记录

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

以追加的方式将程序输出到不同的日志文件,当日志文件超过10M大小时,自动清空文件。

package tools

import (
    "fmt"
    "log"
    "os"
)

const logDir string = "/usr/local/dbmng/log/"

func PathExists(path string) bool {
    _, err := os.Stat(path)
    if err == nil {
        return true
    }
    if os.IsNotExist(err) {
        return false
    }
    return false
}

func CreateDir(dir string) {
    if !PathExists(dir) {
        err := os.Mkdir(dir, os.ModePerm)
        if err != nil {
            fmt.Printf("mkdir failed![%v]\n", err)
        }
    }
}
//日志分类,不同用途的日志记录于不同的文件
func LogInfo(msg string) {
    fileName := "/usr/local/dbmng/log/info.log"
    //logFile,err  := os.Create(fileName)
    LogClearFile(fileName)
    logFile, err := os.OpenFile(fileName, os.O_CREATE|os.O_WRONLY|os.O_APPEND, 0666)
    defer logFile.Close()

    if err != nil {
        log.Fatalln("open file error")
    }
    debugLog := log.New(logFile, "[Info]", log.LstdFlags)
    debugLog.Println(msg)
}

func LogInfoDbVip(msg string) {
    fileName := "/usr/local/dbmng/log/info_dbvip.log"
    LogClearFile(fileName)
    logFile, err := os.OpenFile(fileName, os.O_CREATE|os.O_WRONLY|os.O_APPEND, 0666)
    defer logFile.Close()

    if err != nil {
        log.Fatalln("open file error")
    }

    debugLog := log.New(logFile, "[Info]", log.LstdFlags)
    debugLog.Println(msg)
}

// 日志大于10M 时清空一次,目录不存在时会自动创建,没有测试父级目录不存在会不会创建
func LogClearFile(fileName string) {
    CreateDir(logDir)
    if PathExists(fileName) {
        fileInfo, _ := os.Stat(fileName)
        //文件大小
        filesize := fileInfo.Size()
        if filesize > 12328960 { // 大于10M时清空一次
            os.Create(fileName)
        }
    }
}

func LogWarning(msg string) {
    fileName := "/usr/local/dbmng/log/warning.log"
    LogClearFile(fileName)
    logFile, err := os.OpenFile(fileName, os.O_CREATE|os.O_WRONLY|os.O_APPEND, 0666)
    defer logFile.Close()

    if err != nil {
        log.Fatalln("open file error")
    }
    debugLog := log.New(logFile, "[Warning]", log.LstdFlags)
    debugLog.Println(msg)
}

func showUsing() {
    fileName := "Info_First.log"
    logFile, err := os.Create(fileName)
    defer logFile.Close()
    if err != nil {
        log.Fatalln("open file error")
    }
    debugLog := log.New(logFile, "[Info]", log.Llongfile)
    debugLog.Println("A Info message here")
    debugLog.SetPrefix("[Debug]")
    debugLog.Println("A Debug Message here ")
}

/*
func main(){
    LogInfo("普通测试")
    LogInfoDbVip("第一次测试 ")
    LogWarning("第二次测试 ")
}
*/

 


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
go--用go-mssql驱动连接sqlserver数据库发布时间:2022-07-10
下一篇:
Vscode配置Go开发调试环境发布时间:2022-07-10
热门推荐
热门话题
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap