Categorygithub.com/evalphobia/go-log-wrapper

# README

go-log-wrapper

GoDoc License: Apache 2.0 Release Build Status Codecov Coverage Go Report Card Code Climate BCH compliance

simple logrus wrapper to use easily

Supported Hooks

  • Appneta TraceView
  • Fluent
  • Kinesis
  • Sentry
  • Stackdriver Logging

Quick Usage

Print

import (
	"github.com/evalphobia/go-log-wrapper/log"
)

func main() {
	// Print
	log.Print("print me")
	// "print me"
	log.Dump("dump me")
	// "dump me"

	// Header
	log.Header()
	// "============================================="
	log.Header("header")
	// "===================== header ====================="

	// Mark
	log.Mark()
	// "main"
}

Logrus wrapper

import (
	"github.com/evalphobia/go-log-wrapper/log"
)

func main(){
	user := getUser()

	err := someFunc(user)
	if err != nil {
		log.Packet{
			Title: "error on someFunc",
			Data: user,
			Err: err,
			UserID: user.ID, // used for logrus_sentry
			Tag: "error", // used for logrus_fluent
		}.Error()

		//     Send as below:
		// logrus.WithFields(logrus.Fields{
		// 	"value":   user,
		// 	"error":   err,
		// 	"user_id": user.ID,
		// 	"tag":     "error",
		// }).Error("error on someFunc")
	}

}

Logrus Hook

import(
	"github.com/Sirupsen/logrus"
	"github.com/evalphobia/go-log-wrapper/log/fluent"
	"github.com/evalphobia/go-log-wrapper/log/sentry"
)

func main(){
	// fluentd
	fluent.AddLevel(logrus.DebugLevel)
	fluent.Set(host, port)

	// Sentry
	sentry.AddLevel(logrus.WarnLevel)
	sentry.Set("https://....:[email protected]/99999")

	// AppNeta TraceView
	appneta.AddLevel(logrus.WarnLevel)
	appneta.Set()
}

Logger Instance

package main

import (
	"github.com/evalphobia/go-log-wrapper/log"
)

var logger1 = log.NewLogger()
var logger2 = log.NewLogger()


func main() {
	// global log level sets Error-level
	log.SetGlobalLogLevel(log.Error)

	// logger1 write log to file
	file, _ := os.Create(`/path/to/file`)
	logger1.SetOutput(file)
	logger1.SetLogLevel(log.Debug)

	// logger2 does not write to file, use Sentry hook
	logger2.DisableOutput()
	sentry.SetLogger(logger2, dsn)

	// global logging
	log.Packet{
		Title: "Error by global level",
	}.Error()

	// use logger1
	log.Packet{
		Logger: logger1,
		Title:  "Info by logger1",
	}.Info()

	// use logger2
	log.Packet{
		Logger: logger2,
		Title:  "logger2 does not print, only hooks",
	}.Error()
}

# Packages

No description provided by the author