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)

}

相关推荐
姚不倒6 小时前
Go语言进阶:接口、错误处理与并发编程(goroutine/channel/context)
云原生·golang
宇明一不急13 小时前
go 链表 (标准库实现)
开发语言·链表·golang
~|Bernard|15 小时前
GO语言中哪些类型是可比较类型的(==和!=)
开发语言·后端·golang
比特森林探险记18 小时前
底层数据结构分析 go 语言中的 slice map channel interface
数据结构·golang·哈希算法
XMYX-019 小时前
35 - Go 文件操作:读写与临时文件
golang
姚不倒19 小时前
Go语言实战:多态文件存储系统(接口、错误处理、panic/recover)
云原生·golang
Achou.Wang19 小时前
Docker 多阶段构建:优化 Go 应用镜像大小的最佳实践
elasticsearch·docker·golang
XMYX-020 小时前
34 - Go 二进制处理(编码/解码)深度解析
开发语言·golang
恣艺20 小时前
用Go从零实现一个高性能KV存储引擎:B+Tree索引、WAL持久化、LRU缓存的工程实践
开发语言·数据库·redis·缓存·golang
geovindu1 天前
go: Semaphore Pattern
开发语言·后端·设计模式·golang·企业级信号量模式