Documentation ¶
Overview ¶
Package logur provides an error handler using a Logur compatible logger.
Index ¶
Examples ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type ErrorLogger ¶
type ErrorLogger interface { // Error logs an Error event. // // Critical events that require immediate attention. Error(msg string, fields ...map[string]interface{}) }
ErrorLogger is a subset of the Logur logger interface used for error logging.
type Handler ¶
type Handler struct {
// contains filtered or unexported fields
}
Handler logs errors using a Logur compatible logger.
func New ¶
func New(logger ErrorLogger) *Handler
New returns a new Handler.
Example ¶
package main import ( "logur.dev/logur" logurhandler "emperror.dev/handler/logur" ) func main() { logger := logur.NewNoopLogger() _ = logurhandler.New(logger) }
Output:
func WithStackInfo ¶
WithStackInfo enables annotating every error passing through the handler with the function name and file line of the stack trace's top frame (if one is found).
Example ¶
Maps are printed in key-sorted order as of Go 1.12 See https://golang.org/doc/go1.12#fmt
logger := newLogurLogger() handler := logurhandler.WithStackInfo(logurhandler.New(logger)) err := errors.New("error") handler.Handle(err)
Output: error map[file:example_go1_12_test.go:17 func:ExampleWithStackInfo]
func (*Handler) Handle ¶
Handle records an error event and forwards it to the underlying logger.
Example ¶
package main import ( "fmt" "emperror.dev/errors" logurhandler "emperror.dev/handler/logur" ) type errorLogger struct{} func (e *errorLogger) Error(msg string, fields ...map[string]interface{}) { fmt.Println(msg) if len(fields) > 0 && len(fields[0]) > 0 { fmt.Println(fields[0]) } } func newLogurLogger() *errorLogger { return &errorLogger{} } func main() { logger := newLogurLogger() handler := logurhandler.New(logger) err := errors.New("error") handler.Handle(err) }
Output: error
Click to show internal directories.
Click to hide internal directories.