log

package
v0.3.2 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Nov 9, 2018 License: Apache-2.0, MIT Imports: 0 Imported by: 0

README

Log GoDoc

Log is a logging interface for Go. That's it. Pass around the interface.

Rationale

Users want to standardise logging. Sometimes libraries log. We leave the underlying logging implementation to the user while allowing libraries to log by simply expecting something that satisfies the Logger interface. This leaves the user free to pre-configure structure, output, etc.

Interface

The interface is minimalistic on purpose

type Logger interface {
    Log(v ...interface{})
    Logf(format string, v ...interface{})
}

Example

Here's a logger that uses logrus and logs with predefined fields.

import (
	"github.com/go-log/log"
	"github.com/sirupsen/logrus"
)

type logrusLogger struct {
	*logrus.Entry
}

func (l *logrusLogger) Log(v ...interface{}) {
	l.Entry.Print(v...)
}

func (l *logrusLogger) Logf(format string, v ...interface{}) {
	l.Entry.Printf(format, v...)
}

func WithFields(f logrus.Fields) log.Logger {
	return &logrusLogger{logrus.WithFields(f)}	
}

The WithFields func returns a struct that satisfies the Logger interface.

Pre-configure a logger using WithFields and pass it as an option to a library.

import "github.com/lib/foo"

l := mylogger.WithFields(logrus.Fields{
	"library": "github.com/lib/foo",
})

f := foo.New(
	foo.WithLogger(l),
)

Documentation

Overview

Package log provides a log interface

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func Log

func Log(v ...interface{})

Log logs using the default logger

func Logf

func Logf(format string, v ...interface{})

Logf logs formatted using the default logger

Types

type Logger

type Logger interface {
	Log(v ...interface{})
	Logf(format string, v ...interface{})
}

Logger is a generic logging interface

var (
	// The global default logger
	DefaultLogger Logger = &noOpLogger{}
)

Directories

Path Synopsis

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL