package main
import "log"
import "os"
import "time"
import "sync"
func LOG(msg string, level string){
if level == ""{
level = "[WARNING]:"
}
var mu sync.Mutex
filename := "./" + time.Now().Format("2006_01_02") + ".log"
//mu.Lock() //要不要加这个锁?
logfile,err := os.OpenFile(filename, os.O_WRONLY|os.O_APPEND|os.O_CREATE,0666) //这里如果多个goroutine同时调用LOG函数会出错吗?
if err != nil{
log.Fatalln("open log file error")
}
logger := log.New(logfile, level, log.LstdFlags|log.Lshortfile)
logger.Println(msg)
logfile.Close()
//mu.Unlock()
}
func main(){
LOG("message", "[INFO]:")
}
我知道golang的log包是goroutine安全的,但是在log.New()文件之前需要先打开日志文件,打开日志文件这一步要不要加锁?
这是我的看法: