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)

}

相关推荐
qq_3961534519 分钟前
docker ddns-go 忘记密码
docker·容器·golang
XMYX-028 分钟前
04 - Go 的变量和常量:零值、类型推导与枚举
开发语言·golang
好家伙VCC32 分钟前
**InfluxDB实战进阶:基于Golang的高性能时序数据采集与可视化方
java·开发语言·后端·python·golang
好家伙VCC34 分钟前
**发散创新:基于Go语言的服务网格实践与流量治理实战**在微服务架构日益复杂的今天,**服务网格(S
java·python·微服务·架构·golang
lolo大魔王41 分钟前
Go语言的循环语句、判断语句、通道选择语句
开发语言·算法·golang
呆萌很7 小时前
【GO】结构体构造函数练习题
golang
codeejun12 小时前
每日一Go-44、Go网络栈深度拆解--从 TCP 到 HTTP 的资源复用艺术
网络·tcp/ip·golang
GDAL13 小时前
Go Channel `close()` 深入全面讲解
golang·通道·close
Tomhex15 小时前
Golang内置函数总结
golang·go
XMYX-015 小时前
05 - Go 的循环与判断:语法、用法与最佳实践
开发语言·golang