Go执行go run main.go无法生成webapp.log日志文件问题求助
问题根源定位
你看到的报错2021/09/25 14:58:55 open : no such file or directory中,open和冒号之间是空的,说明传入os.OpenFile的日志文件路径是空字符串,最终导致打开文件失败。
触发这个问题的常见原因和修复方案如下:
- 首先检查
config.ini是否存在、以及配置内容是否正确
你的代码里使用相对路径config.ini加载配置,如果执行go run main.go的工作目录不是项目根目录,或者根目录下根本没有创建config.ini文件,都会导致配置加载失败。同时要检查config.ini的内容格式是否正确,示例配置如下:
尤其要确认[web] port = 8080 logfile = webapp.log [db] driver = sqlite3 name = todo.db[web]段下的logfile字段拼写正确,没有遗漏。 - 补充配置加载的错误日志,方便定位
你当前LoadConfig方法里加载配置失败时只调用了log.Fatalln(),没有输出错误信息,会掩盖配置加载失败的问题,修改成如下代码即可看到具体的加载错误:func LoadConfig() { cfg, err := ini.Load("config.ini") if err != nil { log.Fatalln("加载配置文件失败:", err) } // 后续原有逻辑不变 } - 如果你的
logfile配置了带父目录的路径(比如logs/webapp.log),需要提前手动创建对应的父目录,os.OpenFile不会自动生成不存在的父级目录,也会触发同类报错。
内容的提问来源于stack exchange,提问作者user15375616
相关产品推荐
相关产品推荐

