logger

package module
v0.0.0-...-8f249b3 Latest Latest
Warning

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

Go to latest
Published: Mar 12, 2019 License: MIT Imports: 6 Imported by: 20

README

Logger

Go Report Card GoDoc GitHub license

Simple logger broker build upon hashicorp/logutils.

Description

Simple logger, that implement specified interface (logger.Logger). That logger can log into anything, that implemented io.Writer interface.

Base

Logger params setup by one call of Init(logger.Prams) method:

// Params - logger params
type Params struct {
  // Output interface
  Writer   io.Writer
  // Log levels
  Levels   []string
  // Min log level (all logs, that stand before that level will not be logged)
  MinLevel string
}

Logger interface:

// Logger - logger interface
type Logger interface {
  Debug(msg string)
  Debugf(msg string, args ...interface{})

  Info(msg string)
  Infof(format string, args ...interface{})

  Warn(msg string)
  Warnf(format string, args ...interface{})

  Error(msg string)
  Errorf(format string, args ...interface{})

  Fatal(msg string)
  Fatalf(format string, args ...interface{})
}
Log format
# <data> <time> <severity> <module>: <message>

2018/05/08 09:28:49 [INFO] service: Starting...

Usage examples

stderr
package main

import (
  "github.com/lillilli/logger"
)

type Service struct {
  log logger.Logger
}

func NewService() *Service {
  return &Service{
    log: logger.NewLogger("service name"),
  }
}

func (s *Service) SayHi(name string) {
  s.log.Infof("Saying hi to %s", name)
}

func main() {
  service := NewService()
  service.SayHi("Alex")

  // Output:
  // 2019/03/12 11:56:53 [INFO] service name: Saying hi to Alex
}
GELF (graylog)
import "gopkg.in/Graylog2/go-gelf.v1/gelf"

gelfWriter, err := gelf.NewWriter("localhost:12201")
if err != nil {
  return errors.Wrap(err, "unable to create gelf writer")
}
syslog
import (
	"log"
	"log/syslog"

	"github.com/lillilli/logger"
)

func main() {
  logWriter, err := syslog.New(syslog.LOG_NOTICE, "service_name")

  if err != nil {
    log.Fatalf("Unable to create syslog writer: %v", err)
  }

  logger.Init(logger.Params{
    Writer: logWriter,
  })

  log := logger.NewLogger("service")
  log.Info("I'm going to syslog")
}
rsyslog (udp)
logWriter, err := syslog.Dial("udp", "rsyslog:514", syslog.LOG_NOTICE, "service_name")

if err != nil {
  return errors.Wrap(err, "unable to create syslog writer")
}
rsyslog (tcp)
logWriter, err := syslog.Dial("tcp", "rsyslog:10514", syslog.LOG_NOTICE, "service_name")

if err != nil {
  return errors.Wrap(err, "unable to create syslog writer")
}

License

Released under the MIT License.

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func Init

func Init(params Params)

Init - logger initialization

Types

type Logger

type Logger interface {
	Debug(msg string)
	Debugf(msg string, args ...interface{})

	Info(msg string)
	Infof(format string, args ...interface{})

	Warn(msg string)
	Warnf(format string, args ...interface{})

	Error(msg string)
	Errorf(format string, args ...interface{})

	Fatal(msg string)
	Fatalf(format string, args ...interface{})
}

Logger - logger interface

func NewLogger

func NewLogger(packageName string) Logger

NewLogger - return new logger instance

type Params

type Params struct {
	Writer   io.Writer
	Levels   []string
	MinLevel string `env:"LOG_LEVEL" default:"DEBUG"`
}

Params - logger params

Jump to

Keyboard shortcuts

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