golang判断目录是否存在和生成日志文件

package main

import (

"fmt"

"io"

"os"

"time"

"github.com/sirupsen/logrus"

)

func main() {

defer func() {

err := recover()

if err != nil {

logrus.Info(err)

}

}()

log_path := "runtime/logs/"

_, err := os.Stat(log_path)

if err != nil {

if os.IsNotExist(err) {

err = os.MkdirAll(log_path, 0755)

if err != nil {

logrus.Fatal("目录创建错误", err)

}

}

}

log_file := log_path + "error" + time.Now().Format("2006-01-02") + ".log"

fd, err := os.OpenFile(log_file, os.O_CREATE|os.O_WRONLY|os.O_APPEND, 0644)

if err != nil {

logrus.Info("打开文件错误", err)

return

}

logrus.SetOutput(io.MultiWriter(os.Stdout, fd))

Test(1, 0)

}

func Test(x int, y int) {

a := x / y

fmt.Println(a)

}

相关推荐
我的golang之路果然有问题2 小时前
云服务器部署Gin+gorm 项目 demo
运维·服务器·后端·学习·golang·gin
孔令飞3 小时前
Go 为何天生适合云原生?
ai·云原生·容器·golang·kubernetes
YGGP6 小时前
吃透 Golang 基础:数据结构之 Map
开发语言·数据结构·golang
march of Time7 小时前
go工具库:hertz api框架 hertz client的使用
开发语言·golang·iphone
余厌厌厌8 小时前
go语言学习 第9章:映射(Map)
服务器·学习·golang
roman_日积跬步-终至千里8 小时前
【Go语言基础【15】】数组:固定长度的连续存储结构
golang
cccc来财9 小时前
Go中的协程并发和并发panic处理
开发语言·后端·golang
roman_日积跬步-终至千里1 天前
【Go语言基础【9】】字符串格式化与输入处理
golang
比特森林探险记1 天前
Go 中的 Map 与字符处理指南
c++·算法·golang
比特森林探险记1 天前
Go 中 map 的双值检测写法详解
java·前端·golang