程序开发 · 2025年6月10日

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

哈喽!大家好,很高兴又见面了,我是GOLANG的一名作者,今天由我给大家带来一篇
《GOLANG 开机自启后无法打印日志:为什么日志文件无法打开?》,本文主要会讲到
等等知识点,希望大家一起学习进步,也欢迎大家关注、点赞、收藏、转发! 下面就一起来看看吧!,
,
golang 开机自启后无法打印日志:无法打开文件,使用 github.com/kardianos/service 设置 go 项目为开机自启时,打印日志时提示 open ./run.log: read-only file system 错误。,
问题分析,该错误表明程序无法打开日志文件 ./run.log 进行写操作。可能是因为 ./run.log 所在目录为只读方式挂载的。,
解决方案,解决办法是将日志文件路径改为绝对路径,指向一个可写目录,例如 /var/log/run.log。,修改代码如下:,修改后,程序即可在开机自启后正常打印日志。,本篇关于《GOLANG 开机自启后无法打印日志:为什么日志文件无法打开?》的介绍就到此结束啦,但是学无止境,想要了解学习更多关于GOLANG的相关知识,请关注GOLANG公众号!,golang 开机自启后无法打印日志:无法打开文件,哈喽!大家好,很高兴又见面了,我是GOLANG的一名作者,今天由我给大家带来一篇
《GOLANG 开机自启后无法打印日志:为什么日志文件无法打开?》,本文主要会讲到
等等知识点,希望大家一起学习进步,也欢迎大家关注、点赞、收藏、转发! 下面就一起来看看吧!,

当前位置: > > > > GOLANG 开机自启后无法打印日志:为什么日志文件无法打开?

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

2024-11-03 11:18:38
0浏览
收藏

哈喽!大家好,很高兴又见面了,我是GOLANG的一名作者,今天由我给大家带来一篇《GOLANG 开机自启后无法打印日志:为什么日志文件无法打开?》,本文主要会讲到等等知识点,希望大家一起学习进步,也欢迎大家关注、点赞、收藏、转发! 下面就一起来看看吧!

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

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

问题分析

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

解决方案

解决办法是将日志文件路径改为绝对路径,指向一个可写目录,例如 /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 开机自启后无法打印日志:为什么日志文件无法打开?》的介绍就到此结束啦,但是学无止境,想要了解学习更多关于GOLANG的相关知识,请关注GOLANG公众号!

Java调用Kettle在Tomcat环境下报错:Javassist版本不兼容怎么办?
ECharts 图例项目过多如何添加滚动条和标题?