Go日志框架logrus的基本用法

选中文字可对指定文章内容进行评论啦,绿色背景文字可以点击查看评论额。

以package级别方式使用logrus

package main
import (
  "os"
  log "github.com/sirupsen/logrus"
)
func init() {
  // 设置日志格式
  log.SetFormatter(&log.JSONFormatter{})
  // 设置输出
  log.SetOutput(os.Stdout)
  // 设置日志级别
  log.SetLevel(log.WarnLevel)
}
func main() {
  log.WithFields(log.Fields{
    "animal": "walrus",
    "size":   10,
  }).Info("A group of walrus emerges from the ocean")
  log.WithFields(log.Fields{
    "omg":    true,
    "number": 122,
  }).Warn("The group's number increased tremendously!")
  log.WithFields(log.Fields{
    "omg":    true,
    "number": 100,
  }).Fatal("The ice breaks!")
  // 设置日志默认的信息,所有使用contextLogger都会复用这些信息
  contextLogger := log.WithFields(log.Fields{
    "common": "this is a common field",
    "other": "I also should be logged always",
  })
  contextLogger.Info("I'll be logged with common and other field")
  contextLogger.Info("Me too")
}

以实例方式使用logrus

package main
import (
  "os"
  "github.com/sirupsen/logrus"
)
// 创建一个logrus示例
var log = logrus.New()
func main() {
  // 设置输出,这和package的方式有所不同,它是以属性的方式赋值
  log.Out = os.Stdout
  log.WithFields(logrus.Fields{
    "animal": "walrus",
    "size":   10,
  }).Info("A group of walrus emerges from the ocean")
}

日志格式

logrus内置的日志格式有两种:

  • logrus.TextFormatter:纯文本
     
  • logrus.JSONFormatter:JSON
     

第三方的日志格式:FluentdFormatterlogstashprefixedzalgo

 

版权声明:著作权归作者所有。

相关推荐

使用Tomcat需要掌握的基本内容

首先要知道:Tomcat是一个Servlet/JSP容器。Tomcat作为一个Web应用服务器软件,它的核心功能是实现由JCP(Java Community Process)制定的Java Servlet,(JSP)JavaServer Pages, (EL)Java Expression Language 和&nbs

Kotlin:基本类型 - 数值

内置数值类型Kotlin和Java的数值类型很接近,内置了6中数值类型:Double:64 Float:32 Long:64 Int:32 Short:16 Byte:8 在Java里,char类型也是一种数值类型,可以和其他数值类型转换,而在Kotlin则没有把char类型作为数值类型。字面量整数整数类型:Shot,Int和Long。和Java一样,Long类型的字面量在数字后面加上L来表示。&

Spring Boot:日志集成

Java日志框架Java有好几个日志框架,我们有时在选择Java日志框架时会有点迷惑。下面几个是常用的日志框架Common Logging:Apache最早提供的日志的门面接口。避免和具体的日志方案直接耦合。SLF4J(Simple Logging Facade for JAVA):和Common Logging一样,是一个门面框架,是对

Kotlin:数组的基本操作

Kotlin使用Array类来表示数组,构造函数为:<init> Array(size: Int, init: (Int) -> T) size:数组大小init:初始化数组创建数组Kotlin提供了几种方法方便我们创建数组,包括:构造函数,标准库提供的arrayOf, arrayOfNulls 和emptyArray等 。构造函数// 创建 一个值

Swift 4 Codable协议 - 基本用法

Swift 4新增了Codable协议,它是一个组合协议,包含Encodable和Decodable两个协议。代码定义如下:/// A type that can convert itself into and out of an external repre

Angular 5:HttpClient的基本用法

Angular 4.3引入了新的用于http请求的接口HttpClient。它旨在替换之前版本的接口Http。有以下新特性:对响应的body做类型检查默认返回的是JSON对象,不再需要使用json()显式解析返回的数据支持拦截器支持进度事件请求后验证和基于刷新的测试框架安装HttpClientModuleHttpClient属于@angular/common/http包的模块HttpCl

Spring发送邮件模块的用法

环境准备Spring的邮件模块底层依赖于JavaMail,它主要目的是为应用提供一个便捷有用的发邮件工具包。邮件模块的代码在spring-context-support的jar包里,所在的package为org.springframework.mail。Maven的pom.xm需要添加javax.mail jar包的依赖<dependency>   &nb

使用awk分析nginx访问日志access.log的ip

access.log为nginx的访问日志,默认路径在/var/log/nginx/access.log 分析access.log的ip命令如下:awk '{print $1}' access.log |sort|uniq -c|sort -n 命令里使用awk过滤出访问的ip使用sort对ip排序对排序后的ip进行统计,统计每一个ip访

Rxjs expand的用法分析

Rxjs的expand()函数声明:public expand(project: function(value: T, index: number), concurrent: number, scheduler: Scheduler): Observable expand()会递归调用project函数,project函数把源值映射为一个Observable,每次递归

Android Room的用法

SQLite是Android内置的轻量级关系型数据库,但直接使用SQLite core包做数据库操作有以下劣势:需要编写长且重复的代码,这会很耗时且容易出错。管理SQL困难,特别对于复杂的数据库结构。Room是在这样的背景下应运而生。Room充当现有SQLite API的抽象层。 SQLiite API所有必需的包,参数,方法和变量都使用简单的注释Annot

[译]iOS开发可复用框架入门(实例)

当你编写一个iOS应用程序时,你通常会什么都不想就导入Foundation或UIKit框架。 如果要使用字符串,日期,文件系统或线程,可以导入Foundation。如果要使用UITableViewController或UIAlertController,则可以导入UIKit。 如果你导入了UIKit,那么可以完全忽略Foundation,因为UIKit在后台会导入它。关键是这些

如何修改Git已提交的日志

在某些时候,你发现了之前提交到git上的日志描述不全或者描述有误,这时你是会想要修改它的。 但提交已经是push到服务器,甚至是已经有好几个提交在后面了,这个怎么办呢?Git提供了一些方法来修改。下面分为四种情况来处理。情况一:最后一次提交且未push执行以下命令:git commit --amend git会打开$EDITOR编辑器,它会加载这次提交的日志,这样我们

CodeIgniter数据库基本用法示例

这里主要演示下CodeIgniter数据库的基本用法示例,以便入门使用CodeIgniter做数据库操作。配置数据库连接等信息CodeIgniter提供了文件 application/config/database.php用来配置数据库的连接信息,如下:$db['default'] = array(       &nb

ASP.NET Core 2.0 日志配置

ASP.NET Core 2.0的日志系统做了break change的升级。.NET Core 2.0日志配置的改变主要体现在三点:使用新的方法AddLogging和Builder API配置services允许在Program.cs使用WebHostBuilder配置日志 ASP.NET Core 2.0模板里的W

slf4j集成log4j2处理日志

slf4j统一了日志的接口,通过桥接的方式,它可以集成不同的日志实现框架,如log4j,log4j2,common logging等。这里记录下slf4j集成log4j2的maven依赖配置以及log4j2的简单配置示例。maven添加slf4j以及log4j2相关依赖<!-- 首先引入slf4j的核心包 --><dependency> <groupId>

TTree scan函数的基本用法

TTree scan函数原型Long64_t Scan(const char* varexp = "", const char* selection = "", Option_t* option = "", Long64_t nentries = 1000000000, Long64_t firstentry = 0)description: Loop over tree entries and