婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av

主頁 > 知識庫 > golang之log rotate詳解

golang之log rotate詳解

熱門標簽:惠州電銷防封電話卡 釘釘有地圖標注功能嗎 汕頭小型外呼系統 濱州自動電銷機器人排名 阿里云ai電話機器人 鄭州亮點科技用的什么外呼系統 浙江高頻外呼系統多少錢一個月 黃岡人工智能電銷機器人哪個好 建造者2地圖標注

操作系統: CentOS 6.9_x64

go語言版本: 1.8.3

問題描述

golang的log模塊提供的有寫日志功能,示例代碼如下:

/*
golang log example

*/
package main

import (
  "log"
  "os"
)

func main() {
  logFile,err := os.Create("test1.log")
  defer logFile.Close()
  if err != nil {
    log.Fatalln("open file error!")
  }
  logger := log.New(logFile,"[Debug]",log.Ldate | log.Ltime | log.Lshortfile)
  logger.Println("test debug message")
  logger.SetPrefix("[Info]")
  logger.Println("test info message")

}

運行效果:

[root@local t2]# go build logTest1.go
[root@local t2]# ./logTest1
[root@local t2]# cat test1.log
[Debug]2017/06/13 23:18:36 logTest1.go:19: test debug message
[Info]2017/06/13 23:18:36 logTest1.go:21: test info message
[root@local t2]#

go語言的log模塊沒有提供log rotate接口,但實際開發中我們需要該功能:

我們不希望單個日志過大,否則文本編輯器無法打開,查看比較困難;

更不希望占用太大的存儲空間,可以指定最多存多少個日志文件。

解決方案

借助帶緩沖的channel來實現。

示例代碼如下:

/*
  golang log rotate example

*/

package main

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

const (
  BACKUP_COUNT = 5
  MAX_FILE_BYTES = 2 * 1024
)

func doRotate(fPrefix string) {
  for j := BACKUP_COUNT; j >= 1; j-- {
    curFileName := fmt.Sprintf("%s_%d.log",fPrefix,j)
    k := j-1
    preFileName := fmt.Sprintf("%s_%d.log",fPrefix,k)

    if k == 0 {
      preFileName = fmt.Sprintf("%s.log", fPrefix)
    }
    _,err := os.Stat(curFileName)
    if err == nil {
      os.Remove(curFileName)
      fmt.Println("remove : ", curFileName)
    }
    _,err = os.Stat(preFileName)
    if err == nil {
      fmt.Println("rename : ", preFileName, " => ", curFileName)
      err = os.Rename(preFileName, curFileName)
      if err != nil {
        fmt.Println(err)
      }
    }
  }
}

func NewLogger(fPrefix string) (*log.Logger, *os.File) {
  var logger *log.Logger
  fileName := fmt.Sprintf("%s.log", fPrefix)
  fmt.Println("fileName :", fileName)
  logFile, err := os.OpenFile(fileName, os.O_RDWR|os.O_CREATE|os.O_APPEND, 0666)

  if err != nil {
    fmt.Println("open file error!")
  } else {
    logger = log.New(logFile, "[Debug]", log.Ldate|log.Ltime|log.Lshortfile)
  }
  return logger, logFile
}

func logWorker(msgQueue -chan string) {
  fPrefix := "msg"
  logger, logFile := NewLogger(fPrefix)
  for msg := range msgQueue {
    logger.Println(msg)
    fi, err2 := logFile.Stat()
    if err2 == nil {
      if fi.Size() > MAX_FILE_BYTES {
        logFile.Close()
        doRotate(fPrefix)
        logger,logFile = NewLogger(fPrefix)
      }
    }
  }
  logFile.Close()
}

func main() {
  msgQueue := make(chan string, 1000)
  go logWorker(msgQueue)

  for j := 1; j = 1000; j++ {
    msgQueue - fmt.Sprintf("msg_%d", j)
    time.Sleep(1 * time.Second)
  }
  close(msgQueue)
  return
}

運行效果如下:

[root@local t2]# ./logRotateTest1
fileName : msg.log
rename : msg.log => msg_1.log
fileName : msg.log
rename : msg_1.log => msg_2.log
rename : msg.log => msg_1.log
fileName : msg.log
rename : msg_2.log => msg_3.log
rename : msg_1.log => msg_2.log
rename : msg.log => msg_1.log
fileName : msg.log
^C

討論

這里只是個簡單的示例代碼,實現了log rotate,更多功能需自行開發。

好,就這些了,希望對你有幫助。

以上這篇golang之log rotate詳解就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支持腳本之家。

您可能感興趣的文章:
  • 詳解Golang 與python中的字符串反轉
  • 深入理解golang的異常處理機制
  • Golang開發中常用的代碼片段匯總
  • 在Golang代碼中如何自動生成版本號的方法示例
  • Golang中switch語句和select語句的用法教程
  • Golang讀寫Excel的方法教程
  • 利用Golang如何調用Linux命令詳解
  • Golang多線程刷票的實現代碼

標簽:瀘州 駐馬店 阿壩 東營 晉中 滄州 泰安 昭通

巨人網絡通訊聲明:本文標題《golang之log rotate詳解》,本文關鍵詞  golang,之,log,rotate,詳解,golang,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《golang之log rotate詳解》相關的同類信息!
  • 本頁收集關于golang之log rotate詳解的相關信息資訊供網民參考!
  • 推薦文章
    婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av
    亚洲高清视频在线| 国产精品麻豆久久久| 色香蕉成人二区免费| 本田岬高潮一区二区三区| 国产乱对白刺激视频不卡| 国产呦萝稀缺另类资源| 国产一区二区三区免费观看| 国产一区二区视频在线播放| 国产一区二区免费看| 成人在线视频一区二区| 波多野结衣中文字幕一区二区三区 | 精品污污网站免费看| 欧美喷水一区二区| 欧美成人国产一区二区| 精品久久久久久综合日本欧美| 久久久www成人免费毛片麻豆 | 99精品欧美一区| 欧美性一区二区| 欧美一卡二卡三卡| 中文字幕国产一区| 亚洲一二三四在线观看| 麻豆国产精品视频| 国产不卡视频在线观看| 在线观看日韩精品| 欧美mv日韩mv国产| 亚洲日本中文字幕区| 婷婷久久综合九色综合伊人色| 韩国三级中文字幕hd久久精品| proumb性欧美在线观看| 这里只有精品免费| 国产欧美一二三区| 日韩黄色片在线观看| 国产成人精品1024| 91麻豆精品国产自产在线 | 日本丰满少妇一区二区三区| 在线播放一区二区三区| 中日韩免费视频中文字幕| 天堂成人国产精品一区| 成人精品一区二区三区四区 | 欧美欧美午夜aⅴ在线观看| 国产亚洲精品7777| 日韩精品91亚洲二区在线观看 | 欧美日韩成人综合天天影院 | 日本乱人伦一区| 精品裸体舞一区二区三区| 亚洲精品免费电影| 国产成人精品aa毛片| 欧美一区二区三区不卡| 亚洲免费观看在线视频| 国产91精品久久久久久久网曝门| 欧美日韩国产欧美日美国产精品| 国产精品蜜臀在线观看| 国产精品综合在线视频| 91精品国产麻豆国产自产在线 | 精品一区二区免费| 5566中文字幕一区二区电影| 亚洲欧美一区二区在线观看| 国产一区二三区| 欧美一级夜夜爽| 男女视频一区二区| 7777女厕盗摄久久久| 亚洲午夜羞羞片| 一本大道久久精品懂色aⅴ| 国产精品久久久久久久久快鸭| 久久爱www久久做| 正在播放亚洲一区| 欧美a一区二区| 欧美一区二区三区免费在线看| 亚洲3atv精品一区二区三区| 色国产精品一区在线观看| 亚洲桃色在线一区| 91福利国产精品| 一区二区三区免费网站| 91黄色免费观看| 亚洲国产精品一区二区久久恐怖片| 97精品国产97久久久久久久久久久久| 国产日韩精品一区| av电影天堂一区二区在线| 国产精品你懂的| 99久久精品情趣| 日韩理论电影院| 在线亚洲一区观看| 亚洲一区二区三区三| 777色狠狠一区二区三区| 日本欧美加勒比视频| 日韩欧美卡一卡二| 国产福利精品导航| 亚洲视频在线观看一区| 欧美午夜在线观看| 蜜臀精品久久久久久蜜臀| 精品成a人在线观看| 成人黄色小视频| 亚洲精品午夜久久久| 欧美精品在线观看一区二区| 日韩精品1区2区3区| 久久综合色天天久久综合图片| 国产一区二三区好的| 亚洲欧美日韩一区二区三区在线观看| 欧美亚洲国产怡红院影院| 美女爽到高潮91| 中文字幕中文乱码欧美一区二区| 色婷婷av一区二区三区大白胸| 日韩中文字幕亚洲一区二区va在线 | 在线观看视频欧美| 激情久久久久久久久久久久久久久久| 欧美高清在线视频| 91精品国产手机| av一区二区三区黑人| 美女视频网站黄色亚洲| 亚洲欧美偷拍三级| 精品国产电影一区二区| 色综合网站在线| 国产米奇在线777精品观看| 亚洲人成亚洲人成在线观看图片| 欧美系列日韩一区| 成人教育av在线| 美女一区二区在线观看| 1024亚洲合集| 久久久久久亚洲综合| 欧美在线观看一二区| 国产又黄又大久久| 日本女人一区二区三区| 亚洲日本在线看| 欧美激情一区在线观看| 日韩视频在线永久播放| 欧美视频日韩视频| 2020国产精品| 666欧美在线视频| 欧美伊人久久大香线蕉综合69| 大尺度一区二区| 国产盗摄女厕一区二区三区| 日本va欧美va瓶| 日本网站在线观看一区二区三区| 亚洲丝袜美腿综合| 国产精品免费网站在线观看| 精品电影一区二区| 久久久久久麻豆| 欧美一级xxx| 日韩情涩欧美日韩视频| 欧美精品xxxxbbbb| 在线成人小视频| 欧美一区二区视频在线观看2022| 欧美日韩午夜在线| 欧美久久一区二区| 欧美精品少妇一区二区三区| 亚洲一二三区视频在线观看| 亚洲女人小视频在线观看| 欧美国产日韩a欧美在线观看| 久久久五月婷婷| 国产亚洲成aⅴ人片在线观看| 久久综合九色综合久久久精品综合| 欧美大片一区二区| 久久久久久久久久久久久夜| 久久精品亚洲国产奇米99| 久久久久久久综合色一本| 日本一区二区高清| 亚洲激情图片一区| 图片区日韩欧美亚洲| 日韩女优制服丝袜电影| 欧美xxx久久| 亚洲国产精品成人久久综合一区 | 欧美最猛黑人xxxxx猛交| 欧美日韩免费高清一区色橹橹| 欧美视频一区二区三区四区| 欧美美女一区二区| 亚洲精品在线观看网站| 日本一区二区电影| 亚洲精品视频在线观看免费| 亚洲在线视频免费观看| 久久精品国产99国产精品| 粉嫩绯色av一区二区在线观看 | 国产河南妇女毛片精品久久久| 成人av动漫在线| 在线电影国产精品| 国产女人18水真多18精品一级做 | 2014亚洲片线观看视频免费| 国产精品白丝在线| 亚洲国产成人porn| 国产成人在线电影| 一区二区三区免费网站| 韩国女主播一区| 91捆绑美女网站| 欧美精品一区二区三区久久久| 综合av第一页| 狠狠v欧美v日韩v亚洲ⅴ| 91在线播放网址| 精品国产乱子伦一区| 亚洲美女视频在线| 国产一区二区三区四区五区入口| 91一区二区在线观看| 日韩视频永久免费| 一个色综合av| 成人精品小蝌蚪| 久久影院午夜片一区| 性久久久久久久| 91免费国产在线| 中日韩av电影| 国产丶欧美丶日本不卡视频| 欧美日韩卡一卡二| 亚洲夂夂婷婷色拍ww47|