首页 > 后端开发 > Golang > 正文

Golang 开机自启后无法打印日志:为什么日志文件无法打开?

心靈之曲
发布: 2024-11-03 10:36:13
原创
367人浏览过

golang 开机自启后无法打印日志:为什么日志文件无法打开?

golang 开机自启后无法打印日志:无法打开文件

使用 github.com/kardianos/service 设置 go 项目为开机自启时,打印日志时提示 open ./run.log: read-only file system 错误。

问题分析

该错误表明程序无法打开日志文件 ./run.log 进行写操作。可能是因为 ./run.log 所在目录为只读方式挂载的。

立即学习go语言免费学习笔记(深入)”;

法语写作助手
法语写作助手

法语助手旗下的AI智能写作平台,支持语法、拼写自动纠错,一键改写、润色你的法语作文。

法语写作助手 31
查看详情 法语写作助手

解决方案

解决办法是将日志文件路径改为绝对路径,指向一个可写目录,例如 /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中文网其它相关文章!

相关标签:
全能打印神器
全能打印神器

全能打印神器是一款非常好用的打印软件,可以在电脑、手机、平板电脑等设备上使用。支持无线打印和云打印,操作非常简单,使用起来也非常方便,有需要的小伙伴快来保存下载体验吧!

下载
来源:php中文网
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
最新问题
热门推荐
开源免费商场系统广告
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号