我正在使用 Go。我想创建一个名为webapp的日志文件.log当我运行去运行主.go。
但是,当我运行 go run main.go 时,消息出现在终端中,并且不会创建日志文件。
我无法从消息中看出哪个位置导致无法创建日志文件。如果有人可以帮助我,请告诉我。主要.go"2021/09/25 14:58:55 open : no such file or directory"
package main
import (
"fmt"
"golang_todo_app/config"
"log"
)
func main() {
fmt.Println(config.Config.Port)
fmt.Println(config.Config.SQLDriver)
fmt.Println(config.Config.DbName)
fmt.Println(config.Config.LogFile)
log.Println("test")
}
配置/配置。
package config
import (
"golang_todo_app/utils"
"log"
"gopkg.in/go-ini/ini.v1"
)
type ConfigList struct {
Port string
SQLDriver string
DbName string
LogFile string
}
var Config ConfigList
func init () {
LoadConfig()
utils.LoggingSettings(Config.LogFile)
}
func LoadConfig() {
cfg, err := ini.Load("config.ini")
if err != nil {
log.Fatalln()
}
Config = ConfigList{
Port: cfg.Section("web").Key("port").MustString("8080"),
SQLDriver: cfg.Section("db").Key("driver").String(),
DbName: cfg.Section("db").Key("name").String(),
LogFile: cfg.Section("web").Key("logfile").String(),
}
}
utils/logging.go
package utils
import (
"io"
"log"
"os"
)
func LoggingSettings(logFile string) {
logfile, err := os.OpenFile(logFile, os.O_RDWR|os.O_CREATE|os.O_APPEND, 0666)
if err != nil {
log.Fatalln(err)
}
multiLogFile := io.MultiWriter(os.Stdout, logfile)
log.SetFlags(log.Ldate | log.Ltime | log.Lshortfile)
log.SetOutput(multiLogFile)
}
三国纷争
相关分类