golog

package module
v1.2.0 Latest Latest
Warning

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

Go to latest
Published: Jul 9, 2021 License: MIT Imports: 3 Imported by: 6

README

📟 golog

Build Status Go Report Card codecov license

logo

golog - Logger

📖 ABOUT

Contributors:

Want to contribute ? Feel free to send pull requests!

Have problems, bugs, feature ideas? We are using the github issue tracker to manage them.

📚 Documentation

For examples visit godoc#pkg-examples

For GoDoc reference, visit pkg.go.dev

🚏 HOW TO USE

🏫 Basic example

package main

import (
    "fmt"
    "context"
    
    "github.com/vardius/golog"
)

func main() {
    ctx := context.Background()
    logger := golog.New()
    
    logger.Debug(ctx context.Context, fmt.Sprintf("Hello %s!", "you"))
}

📦 As a package

package mylogger

import (
    "context"
    
    "github.com/vardius/golog"
)

var Logger golog.Logger

func SetFlags(flag int) {
    Logger.SetFlags(flag)
}

func SetVerbosity(verbosity golog.Verbose) {
    Logger.SetVerbosity(verbosity)
}

func Debug(ctx context.Context, v string) {
    Logger.Debug(ctx, v)
}

func Info(ctx context.Context, v string) {
    Logger.Info(ctx, v)
}

func Warning(ctx context.Context, v string) {
    Logger.Warning(ctx, v)
}

func Error(ctx context.Context, v string) {
    Logger.Error(ctx, v)
}

func Critical(ctx context.Context, v string) {
	Logger.Critical(ctx, v)
}

func Fatal(ctx context.Context, v string) {
	Logger.Fatal(ctx, v)
}

func init() {
    Logger = golog.New()
}

usage:

package main

import (
    "fmt"
    
    "mylogger"
)

func main() {
    mylogger.Debug(ctx context.Context, fmt.Sprintf("Hello %s!", "you"))
}

📜 License

This package is released under the MIT license. See the complete license in the package

Documentation

Overview

Package golog provides simple logger Basic example:

package main

import (
	"fmt"
	"context"

	"github.com/vardius/golog"
)

func main() {
	ctx := context.Background()
	logger := golog.New()

	logger.Debug(ctx context.Context, fmt.Sprintf("Hello %s!", "you"))
}

As a package:

package mylogger

import (
	"context"

	"github.com/vardius/golog"
)

var logger golog.Logger

func SetFlags(flag int) {
	logger.SetFlags(flag)
}

func SetVerbosity(verbosity golog.Verbose) {
	logger.SetVerbosity(verbosity)
}

func Debug(ctx context.Context, v string) {
	logger.Debug(ctx, v)
}

func Info(ctx context.Context, v string) {
	logger.Info(ctx, v)
}

func Warning(ctx context.Context, v string) {
	logger.Warning(ctx, v)
}

func Error(ctx context.Context, v string) {
	logger.Error(ctx, v)
}

func Critical(ctx context.Context, v string) {
	logger.Critical(ctx, v)
}

func init() {
	logger = golog.New()
}

usage:

package main

import (
	"fmt"

	"mylogger"
)

func main() {
	mylogger.Debug(ctx context.Context, fmt.Sprintf("Hello %s!", "you"))
}

Index

Examples

Constants

View Source
const (
	CLR_0 = "\x1b[30;1m"
	CLR_R = "\x1b[31;1m"
	CLR_G = "\x1b[32;1m"
	CLR_Y = "\x1b[33;1m"
	CLR_B = "\x1b[34;1m"
	CLR_M = "\x1b[35;1m"
	CLR_C = "\x1b[36;1m"
	CLR_W = "\x1b[37;1m"

	RESET = "\x1b[0m"
)

Terminal colours.

View Source
const (
	// DebugPrefix text to prefix to each log entry generated by the Logger
	DebugPrefix = "DEBUG: "
	// InfoPrefix text to prefix to each log entry generated by the Logger
	InfoPrefix = "INFO: "
	// WarnPrefix text to prefix to each log entry generated by the Logger
	WarnPrefix = "WARN: "
	// ErrorPrefix text to prefix to each log entry generated by the Logger
	ErrorPrefix = "ERROR: "
	// CriticalPrefix text to prefix to each log entry generated by the Logger
	CriticalPrefix = "CRITICAL: "

	// DefaultFlags define default text to prefix to each log entry generated by the Logger
	DefaultFlags = log.Ldate | log.Ltime | log.Lmicroseconds | log.LUTC
	// DefaultVerbosity define default verbosity level
	DefaultVerbosity = Critical | Error | Warning | Info | Debug
)

Variables

View Source
var New loggerFactory

New returns a Logger.

Functions

This section is empty.

Types

type Logger

type Logger interface {
	Debug(ctx context.Context, v string)
	Info(ctx context.Context, v string)
	Warning(ctx context.Context, v string)
	Error(ctx context.Context, v string)
	Critical(ctx context.Context, v string)
	// Fatal is equivalent to Critical followed by a call to os.Exit(1).
	Fatal(ctx context.Context, v string)

	// SetFlags override DefaultFlags value on a Logger instance https://golang.org/pkg/log/#pkg-constants
	SetFlags(flag int)
	// SetVerbosity override DefaultVerbosity value on a Logger instance
	SetVerbosity(verbosity Verbose)
}

Logger interface

func NewConsoleLogger

func NewConsoleLogger() Logger

NewConsoleLogger returns a Logger that writes to the console.

Example
package main

import (
	"context"
	"fmt"

	"github.com/vardius/golog"
)

func main() {
	ctx := context.Background()
	logger := golog.NewConsoleLogger()
	logger.SetVerbosity(golog.Warning | golog.Error)

	logger.SetFlags(0)

	// logger.Info won't print to the console because it is below loglevel "warn"
	logger.Info(ctx, fmt.Sprintf("%s", "Info"))
	// logger.Warning and log.Error will both get printed
	logger.Warning(ctx, fmt.Sprintf("%s %d", "Warn", 1))
	logger.Error(ctx, fmt.Sprintf("%s %d", "Error", 666))

}
Output:

�[33;1mWARN: Warn 1�[0m
�[31;1mERROR: Error 666�[0m
Example (Second)
package main

import (
	"context"
	"fmt"

	"github.com/vardius/golog"
)

func main() {
	ctx := context.Background()
	logger := golog.NewConsoleLogger()
	logger.SetVerbosity(golog.Warning | golog.Error)

	logger.SetFlags(0)

	// logger.Info won't print to the console because it is below loglevel "warn"
	logger.Info(ctx, fmt.Sprintf("%s", "Info"))
	// logger.Warning and log.Error will both get printed
	logger.Warning(ctx, fmt.Sprintf("%s %d", "Warn", 1))
	logger.Error(ctx, fmt.Sprintf("%s %d", "Error", 666))

}
Output:

�[33;1mWARN: Warn 1�[0m
�[31;1mERROR: Error 666�[0m

func NewFileLogger added in v1.0.1

func NewFileLogger(filePath string) Logger

NewFileLogger returns a Logger that writes to the file.

type Verbose added in v1.0.3

type Verbose uint8

Verbose levels

const (
	Critical Verbose = 1 << iota // Critical verbose level
	Error                        // Error verbose level
	Warning                      // Warning verbose level
	Info                         // Info verbose level
	Debug                        // Debug verbose level
	Disabled                     // Disabled verbose level disables logger messages. will override all other flags, fatal will still call os.Exit(1)
)

Verbose level flags

Jump to

Keyboard shortcuts

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