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
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
Click to show internal directories.
Click to hide internal directories.