cockroachdberrors

package module
v1.0.0 Latest Latest
Warning

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

Go to latest
Published: Aug 18, 2023 License: MIT Imports: 3 Imported by: 1

README

Zerolog Error Marshaler for cockroachdb/errors

Marshals errors produced by cockroachdb/errors package for log output in zerolog. Inspired by github.com/rs/zerolog/pkgerrors.

Warning
This is not an official product of YUMEMI Inc.

Usage

Without Context
package main

import (
	"github.com/cockroachdb/errors"
	"github.com/rs/zerolog"
	"github.com/yumemi-inc/zerolog-cockroachdb-errors"
)

zerolog.ErrorStackMarshaler = cockroachdberrors.MarshalStack
log := zerolog.New(zerolog.NewConsoleWriter())

err := errors.Wrap(errors.New("error message"), "from error")
log.Log().Stack().Err(err).Send()
With Context
package main

import (
	"github.com/cockroachdb/errors"
	"github.com/rs/zerolog"
	"github.com/yumemi-inc/zerolog-cockroachdb-errors"
)

zerolog.ErrorStackMarshaler = cockroachdberrors.MarshalStack
log := zerolog.
	New(zerolog.NewConsoleWriter()).
	With().
	Stack().
	Logger()

err := errors.Wrap(errors.New("error message"), "from error")
log.Log().Err(err).Send()

Output

{
  "error": "from error: error message",
  "stack": [
    {
      "stacktrace": [
        {
          "source": "main.go",
          "line": 10,
          "func": "main"
        }
      ]
    },
    {
      "details": [
        "from error"
      ]
    },
    {
      "stacktrace": [
        {
          "source": "main.go",
          "line": 10,
          "func": "main"
        }
      ]
    },
    {
      "details": [
        "error message"
      ]
    }
  ]
}

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func MarshalStack

func MarshalStack(err error) any

MarshalStack implements cockroachdb/errors stack trace marshaling.

zerolog.ErrorStackMarshaler = MarshalStack

Types

type Frame

type Frame struct {
	Source   string `json:"source"`
	Line     string `json:"line"`
	Function string `json:"func"`
}

type Stack

type Stack struct {
	Details    []string `json:"details,omitempty"`
	Stacktrace []Frame  `json:"stacktrace,omitempty"`
}

Jump to

Keyboard shortcuts

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