go日志系统logrus显示文件和行号的操作

 更新时间:2020年11月10日 10:55:31   作者:SmallQinYan  
这篇文章主要介绍了go日志系统logrus显示文件和行号的操作,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧

logrus默认不支持显示文件名和行号,不太友好,但是在v1.2.0版本已经修复。可以通过setReportCaller设置即可显示文件名和行号

补充知识:logrus 的输出设置

O_RDONLY:只读模式(read-only)

O_WRONLY:只写模式(write-only)

O_RDWR:读写模式(read-write)

O_APPEND:追加模式(append)

O_CREATE:文件不存在就创建(create a new file if none exists.)

O_EXCL:与 O_CREATE 一起用,构成一个新建文件的功能,它要求文件必须不存在(used with O_CREATE, file must not exist)

O_SYNC:同步方式打开,即不使用缓存,直接写入硬盘 O_TRUNC:打开并清空文件

func initLogger() error {
 logrusLogLevel, err := logrus.ParseLevel(*logLevel)
 if err != nil {
 return err
 }
 now := collectors.GetTime()
 err1 := collectors.CreateDir("logs")
 if err1 != nil {
 return err1
 }
 f, err := os.OpenFile("logs/"+now, os.O_RDWR|os.O_CREATE|os.O_APPEND, 0755)
 if err != nil {
 logrus.Fatal(err)
 }
 logrus.SetOutput(f)
 logrus.SetLevel(logrusLogLevel)
 logrus.SetReportCaller(true)
 logrus.SetFormatter(&logrus.TextFormatter{TimestampFormat: "2006-01-02 15:04:05"})
 logrus.Info("init log done")
 return nil
}
 
func GetTime() string {
 return time.Now().Format("2006-01-02")
}
 
func CreateDir(string2 string) error {
 err := os.MkdirAll(string2, 0755)
 if err != nil {
 return err
 }
 return nil
}
 
func PathExists(path string) bool {
 _, err := os.Stat(path)
 if err == nil {
 return true
 }
 if os.IsExist(err) {
 return true
 }
 return false
}

以上这篇go日志系统logrus显示文件和行号的操作就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • golang实现给图片加水印

    golang实现给图片加水印

    这篇文章主要为大家详细介绍了Vue3如何利用golang实现给图片加水印,文中的示例代码讲解详细,具有一定的借鉴价值,需要的可以参考一下
    2023-12-12
  • 浅谈go build后加文件和目录的区别

    浅谈go build后加文件和目录的区别

    这篇文章主要介绍了浅谈go build后加文件和目录的区别,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-12-12
  • Golang中设置全局变量并在其他文件中使用

    Golang中设置全局变量并在其他文件中使用

    全局变量是被整个程序都可见的变量,通常用于存储程序中需要共享的数据,本文就来介绍一下Golang中设置全局变量并在其他文件中使用的方法,感兴趣的可以了解一下
    2024-01-01
  • Go语言中的数据格式(json、xml 、msgpack、protobuf)使用总结

    Go语言中的数据格式(json、xml 、msgpack、protobuf)使用总结

    在分布式的系统中,因为涉及到数据的传输,所以一定会进行数据的交换,此时就要定义数据交换的格式,例如二进制、Json、Xml等等。本文总结了Go语言中的数据格式,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2022-07-07
  • 深入探索Go 1.21中的 maps工具库

    深入探索Go 1.21中的 maps工具库

    随着 Go 1.21.0 版本的发布,新增了两个实用的泛型工具库:maps 和 slices,下面小编就带大家一起学习一下 maps 工具库的相关知识吧
    2023-08-08
  • Golang Socket Server自定义协议的简单实现方案

    Golang Socket Server自定义协议的简单实现方案

    这篇文章主要介绍了Golang Socket Server自定义协议的简单实现方案,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-12-12
  • 详解go语言中type关键词的几种使用

    详解go语言中type关键词的几种使用

    这篇文章主要介绍了详解go语言中type的几种使用,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2021-02-02
  • 夯实Golang基础之数据类型梳理汇总

    夯实Golang基础之数据类型梳理汇总

    这篇文章主要8为大家介绍了夯实Golang基础之数据类型梳理汇总,有需要的朋友可以借鉴参考下,希望能够有所帮助
    2023-10-10
  • Go语言二进制文件的读写操作

    Go语言二进制文件的读写操作

    本文主要介绍了Go语言二进制文件的读写操作,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2023-04-04
  • 解决golang 关于全局变量的坑

    解决golang 关于全局变量的坑

    这篇文章主要介绍了解决golang 关于全局变量的坑,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2021-05-05

最新评论