
golang 开机自启后无法打印日志:无法打开文件
使用 github.com/kardianos/service 设置 go 项目为开机自启时,打印日志时提示 open ./run.log: read-only file system 错误。
问题分析
该错误表明程序无法打开日志文件 ./run.log 进行写操作。可能是因为 ./run.log 所在目录为只读方式挂载的。
立即学习“go语言免费学习笔记(深入)”;
解决方案
解决办法是将日志文件路径改为绝对路径,指向一个可写目录,例如 /var/log/run.log。
修改代码如下:
import (
"log"
"github.com/lumberjack"
)
// 创建日志记录器
func newLogger() (*log.Logger, error) {
// 修改为绝对路径
l := &lumberjack.Logger{
FileName: "/var/log/run.log",
MaxSize: 100, // 最大日志文件大小(单位 Mb)
MaxBackups: 7, // 最大保留旧日志文件个数
MaxAge: 7, // 旧日志文件最大保留时间(单位天)
Compress: false, // 是否压缩旧日志文件
}
// 创建日志记录器
logger := log.New(l, "", log.LstdFlags)
return logger, nil
}修改后,程序即可在开机自启后正常打印日志。
以上就是Golang 开机自启后无法打印日志:为什么日志文件无法打开?的详细内容,更多请关注php中文网其它相关文章!
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号