,cmd :=, exec.Command (binary_name, args…)   ,f, _ :=, os.OpenFile (“/home/exec.log",, os.O_WRONLY | os.O_CREATE | os.O_SYNC, 0755)   cmd.Stdout  f=,   f, cmd.Stderr =,

<强>补充:去之第三方日志库logrus使用

<强>第三方日志库logrus使用

日志是程序中必不可少的一个环节,由于去语言内置的日志库功能比较简洁,我们在实际开发中通常会选择使用第三方的日志库来进行开发。本文介绍了logrus这个日志库的基本使用。

<强> logrus介绍

logrus是去(golang)的结构化记录器,与标准库记录器完全API兼容。

它有以下特点:

完全兼容标准日志库,拥有七种日志级别:跟踪、调试、信息、警告、错误,Fataland恐慌。

可扩展的钩机制,允许使用者通过钩的方式将日志分发到任意地方,如本地文件系统,logstash, elasticsearch或者mq等,或者通过钩定义日志内容和格式等

可选的日志输出格式,内置了两种日志格式JSONFormater和定义,还可以自定义日志格式

字段机制,通过了机制进行结构化的日志记录

线程安全

<强>安装

美元去github.com/sirupsen/logrus

<>强基本示例

使用logrus最简单的方法是简单的包级导出日志程序:

package  main    import  (   ,log “;github.com/sirupsen/logrus"   ),   func  main (), {   ,log.WithFields (log.Fields {   “animal"才能:,“dog"   中,}). info(“一条舔狗出现了!”)   }

<强>进阶示例

对于更高级的用法,例如在同一应用程序记录到多个位置,你还可以创建logrus记录器的实例:

package  main    import  (   ,“os"   ,“;github.com/sirupsen/logrus"   ),//,创建一个新的记录器实例。可以创建任意多个。   var  log =, logrus.New (),   func  main (), {   ,//设置日志输出为os.Stdout=,log.Out  os.Stdout   ,   ,//可以设置像文件等任意“io.Writer”类型作为日志输出   ,//文件,,err :=, os.OpenFile (“logrus.log",, os.O_CREATE | os.O_WRONLY | os.O_APPEND,, 0666)   ,//if  err ==, nil  {   ,//log.Out =,文件   ,//},{else    ,//log.Info (“Failed 用log 用文件,,using  default  stderr")   ,//}   ,   ,log.WithFields (logrus.Fields {   “animal"才能:,“dog"   “size"才能:,,,   中,}). info(“一群舔狗出现了!”)   }