当前位置: 首页 > 知识库问答 >
问题:

我如何登录golang到一个有日志旋转的文件?

韶和璧
2023-03-14
    null

共有1个答案

阎建中
2023-03-14

虽然@crast给出了一个非常好的答案,但我也想带来我最终使用的Nate Finch的lumberjack logger。

以下是使用方法

  1. 首先,克隆伐木工人存储库或以某种方式获取它。
  2. 在文件夹上运行go install命令。
  3. 现在导入Go的“log”包和“lumberjack包”。

导入(“log”“github.com/natefinch/lumberjack”)

在main之外,声明日志变量。

var errLog *log.Logger

内主:

e, err := os.OpenFile("./foo.log", os.O_WRONLY|os.O_CREATE|os.O_APPEND, 0666)

if err != nil {
    fmt.Printf("error opening file: %v", err)
    os.Exit(1)
}
errLog = log.New(e, "", log.Ldate|log.Ltime)
errLog.SetOutput(&lumberjack.Logger{
    Filename:   "./foo.log",
    MaxSize:    1,  // megabytes after which new file is created
    MaxBackups: 3,  // number of backups
    MaxAge:     28, //days
})
 类似资料:
  • ,日志记录将进入一个文件; (路径)/service_name/service_name.log 我想用logback复制这种行为,但在logback.xml配置中获取“logger”名称时遇到了真正的困难。它可以在log encoder.pattern中看到,即“%d%-5level%logger{35}-%msg%n”。

  • 多年来,我一直在使用Tomcat、JBoss、Glassfish等。在这些容器中,我使用了Log4j、JDK日志等,非常简单。 我很难从Weblogic 12c中的应用程序中获得任何日志记录。日志被写入stderr,而不是日志文件。 在管理控制台日志记录实现:JDK严重性级别:INFO 如果我按照Log4J Weblogic配置过程配置Log4J,行为是相同的。

  • 和 因为该类在JDBC包中。那我就这么做 Edit2:因为我在控制台中获得的日志消息看起来与logback.xml中的日志消息不同,所以它看起来完全忽略了我的logback.xml。

  • 我想管理日志旋转在我的服务器上使用logRotate,但是Tomcat执行自己的日志旋转,与logRotate交互不良,我找不到关闭它的方法。我的Tomcat实例目前生成5种类型的日志: catalina.2018-01-17.log mysite_access.2018-01-17.log localhost2018-01-17.log host-manager.2018-01-17.log m

  • 问题内容: 使用Winston处理node.js的日志时,如何旋转日志。也就是说,如何在应用运行的每一天创建一个新文件? 问题答案: 温斯顿作家和维护者在这里。 每天登录到新文件是当前的一项开放功能请求:https : //github.com/flatiron/winston/issues/10。希望看到有人实施它。 也就是说,还有其他选择: 文件传输接受一个maxsize选项,当超过一定大小(