3 Star 3 Fork 0

BingCQUST/journal

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
克隆/下载
loginit.go 2.51 KB
一键复制 编辑 原始数据 按行查看 历史
石胜兵 提交于 2023-08-11 15:56 . 优化日志运行逻辑
package journal
import (
"encoding/json"
"fmt"
"path"
"time"
"github.com/astaxie/beego/logs"
)
//调试注释a11
type fileLogWriter struct {
Filename string `json:"filename"`
MaxLines int `json:"maxlines"`
MaxFiles int `json:"maxfiles"`
MaxSize int `json:"maxsize"`
Daily bool `json:"daily"`
MaxDays int64 `json:"maxdays"`
Hourly bool `json:"hourly"`
MaxHours int64 `json:"maxhours"`
Rotate bool `json:"rotate"`
Level int `json:"level"`
Perm string `json:"perm"`
RotatePerm string `json:"rotateperm"`
}
func setProxy() {
prefix := "./log"
dic := time.Now().Format("20060102")
fileNameOnly, suffix := "info", ".log"
//文件路径
filename := path.Join(prefix, dic, fileNameOnly+suffix)
//判断文件路径是否存在,除文件以外的文件夹,如果不存在就创建
//err := pathDeal(path.Join(prefix, dic))
//if err != nil {
// fmt.Println(err)
// return
//}
//日志的参数
var param = fileLogWriter{
Filename: filename,
MaxLines: 1000,
MaxFiles: 999,
MaxSize: 1 << 28,
Daily: true,
MaxDays: 7,
Hourly: false,
MaxHours: 168,
Rotate: true,
RotatePerm: "0440",
Level: logs.LevelInfo,
Perm: "0660",
}
//将日志参数转换为json格式
bytes, err := json.Marshal(param)
if err != nil {
fmt.Println(err)
return
}
// 2 输出引擎 和输出位置
err = logs.SetLogger(logs.AdapterFile, string(bytes))
if err != nil {
fmt.Println(err)
return
}
}
func Start() {
setProxy()
go func() {
for {
setProxy()
time.Sleep(time.Hour)
}
}()
// 3 日志默认不输出调用的文件名和文件行号,如果你期望输出调用的文件名和文件行号,可以如下设置
logs.EnableFuncCallDepth(true)
logs.SetLogFuncCallDepth(3)
// 4 为了提升性能,设置异步输出
logs.Async()
}
//func pathExists(path string) (bool, error) {
// _, err := os.Stat(path)
// if err == nil {
// return true, nil
// }
// if os.IsNotExist(err) {
// return false, nil
// }
// return false, err
//}
//
//func pathDeal(filePath string) (err error) {
// exist, err := pathExists(filePath)
// if err != nil {
// fmt.Printf("get dir error![%v]\n", err)
// return
// }
// if exist {
// fmt.Printf("has dir![%v]\n", filePath)
// } else {
// fmt.Printf("no dir![%v]\n", filePath)
// //创建文件夹
// err := os.MkdirAll(filePath, os.ModePerm)
// if err != nil {
// fmt.Printf("mkdir falied[%v]\n", err)
// } else {
// fmt.Printf("mkdir success!\n")
// }
// }
// return
//}
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
Go
1
https://gitee.com/bingcqust/journal.git
git@gitee.com:bingcqust/journal.git
bingcqust
journal
journal
master

搜索帮助

D67c1975 1850385 1daf7b77 1850385