当前位置: 首页 > news >正文

golang log模块使用

在Go中,log 包是用于输出日志信息的标准库。以下是一些基本的 log 包的使用示例:

  1. 基本用法:

    package mainimport ("log"
    )func main() {log.Println("This is a log message.")
    }

    运行程序,你会在控制台看到日志信息。

  2. 指定日志前缀:

    package mainimport ("log"
    )func main() {log.SetPrefix("MyApp: ")log.Println("This is a log message.")
    }

    这会输出类似于 MyApp: This is a log message. 的日志。

  3. 指定日志输出位置:

    package mainimport ("log""os"
    )func main() {logFile, err := os.Create("logfile.txt")if err != nil {log.Fatal("Cannot create log file: ", err)}defer logFile.Close()log.SetOutput(logFile)log.Println("This log message will be written to the file.")
    }

    这会将日志写入 logfile.txt 文件中。

  4. 指定日志级别:

    log 包默认支持 PrintFatal 和 Panic 三个级别。

    package mainimport ("log"
    )func main() {log.Print("This is a regular log message.")log.Fatal("This is a fatal log message.")log.Panic("This is a panic log message.")
    }

    Fatal 会输出消息并调用 os.Exit(1)Panic 会输出消息并调用 panic

  5. 自定义日志记录器:

    package mainimport ("log""os"
    )var (infoLog    = log.New(os.Stdout, "INFO: ", log.Ldate|log.Ltime|log.Lshortfile)warningLog = log.New(os.Stdout, "WARNING: ", log.Ldate|log.Ltime|log.Lshortfile)
    )func main() {infoLog.Println("This is an info message.")warningLog.Println("This is a warning message.")
    }

    在这个例子中,我们创建了两个不同的日志记录器,一个用于信息级别,另一个用于警告级别。自定义日志记录器可以定制输出格式和其他属性。

     6. 格式化输出:
在Go的标准库中,log 包的日志输出默认是简单的文本格式。如果你想要更精细的控制和格式化输出,你可以使用 fmt 包进行格式化,然后将格式化后的字符串传递给 log.Printlog.Printflog.Println 等函数。

以下是一个使用 fmt 包格式化输出的示例:

package mainimport ("fmt""log"
)func main() {name := "John"age := 30// 使用 fmt.Sprintf 进行字符串格式化message := fmt.Sprintf("Name: %s, Age: %d", name, age)// 输出格式化后的消息log.Print(message)
}

上面的例子中,fmt.Sprintf 用于格式化字符串,然后将格式化后的字符串传递给 log.Print。这允许你按照需要创建任意格式的日志消息。

如果你想要更多的格式化控制,你也可以使用 log.Printf,该函数使用格式字符串和参数列表,类似于 fmt.Printf

package mainimport ("log"
)func main() {name := "John"age := 30// 使用 log.Printf 进行字符串格式化log.Printf("Name: %s, Age: %d", name, age)
}

这样,你可以使用类似于 fmt.Printf 的占位符进行格式化,如 %s%d 等。

这只是 `log` 包的基本用法示例。在实际应用中,你可能需要更复杂的日志记录、滚动日志文件等功能。有时候,使用第三方的日志库,如 `logrus`、`zap` 等,可以提供更丰富的功能和更灵活的配置。 

http://www.lryc.cn/news/247262.html

相关文章:

  • 软件开发中的抓大放小vs极致细节思维
  • java文件上传以及使用阿里云OSS
  • 相关性分析和作图
  • AlphaFold的原理及解读
  • 【ChatGLM3-6B】Docker下快速部署
  • 两部手机数据传输后备忘录不见了怎么回事
  • 【Unity入门】LayerMask小结
  • mysql按年、季度、月,统计
  • Python的换行和转义:深入理解代码排版与字符串处理
  • dart多线程双向通信的案例----【小学4年级课程】
  • 每日一练:简易计算器
  • Jmeter和Testlink自动化测试框架研究与实施
  • MethodArgumentNotValidException 与 ConstraintViolationException
  • 【数学】旋转矩阵
  • Python与设计模式--中介者模式
  • 后台管理系统开源项目
  • 电子印章管理系统:是什么、3个平台推荐
  • 现货黄金区间交易的两个要点
  • 安卓底部导航栏BottomNavigationView
  • rust每日一库 rand 生成随机数
  • Unity SRP 管线【第三讲:URP 光照】
  • 怎么更新BI报表数据?问我就对了
  • SpringBoot 入门学习
  • 高等数学零基础篇复习笔记
  • CentOS 系列:CentOS 7文件系统的组成
  • String转Date,Date转String
  • 大坝安全监测的内容及作用
  • Maven——Maven发展历程
  • Python与设计模式--迭代器模式
  • 【NGINX--8】HTTP/2