Documentation
¶
Overview ¶
Package console log is a zerolog consolewriter output formatter that can be used generically with any zerolog instantiation so that it's not specific to a particular application
Index ¶
Examples ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type ConsoleWriter ¶
type ConsoleWriter struct {
Out io.Writer
TimeFormat string
PartsOrder []string
FieldsExclude []string
// contains filtered or unexported fields
}
ConsoleWriter parses the JSON input and writes an ANSI-colorized output to out
func NewConsoleWriter ¶
func NewConsoleWriter(options ...func(w *ConsoleWriter)) ConsoleWriter
NewConsoleWriter creates and initializes a new ConsoleWriter
Example ¶
package main
import (
"github.com/rs/zerolog"
"github.com/theopenlane/core/pkg/logx/consolelog"
)
func main() {
output := consolelog.NewConsoleWriter()
logger := zerolog.New(output)
logger.Info().Str("foo", "bar").Msg("hello world")
}
Output: INF hello world foo=bar
Example (Custom) ¶
package main
import (
"fmt"
"strings"
"time"
"github.com/rs/zerolog"
"github.com/theopenlane/core/pkg/logx/consolelog"
)
func main() {
output := consolelog.NewConsoleWriter(
// Customize time formatting
//
func(w *consolelog.ConsoleWriter) {
w.TimeFormat = time.RFC822
},
// Customize "level" formatting
//
func(w *consolelog.ConsoleWriter) {
w.SetFormatter(
zerolog.LevelFieldName,
func(i interface{}) string { return strings.ToUpper(fmt.Sprintf("%-5s", i)) })
},
)
logger := zerolog.New(output).With().Timestamp().Logger()
logger.Info().Str("foo", "bar").Msg("hello world")
// => 19 Jul 18 15:50 CEST INFO hello world foo=bar
}
func (ConsoleWriter) Formatter ¶
func (w ConsoleWriter) Formatter(id string) Formatter
Formatter returns a formatter by id or the default formatter if none is found
func (ConsoleWriter) SetFormatter ¶
func (w ConsoleWriter) SetFormatter(id string, f Formatter)
SetFormatter registers a formatter function by id
Click to show internal directories.
Click to hide internal directories.