apex

package
v0.13.1 Latest Latest
Warning

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

Go to latest
Published: Nov 18, 2022 License: MIT Imports: 9 Imported by: 0

Documentation

Overview

Package apex provides an adapter for the popular github.com/apex/log logging library.

Example
package main

import (
	"github.com/apex/log"

	adapter "github.com/axiomhq/axiom-go/adapters/apex"
)

func main() {
	// Export `AXIOM_DATASET` in addition to the required environment variables.

	handler, err := adapter.New()
	if err != nil {
		log.Fatal(err.Error())
	}
	defer handler.Close()

	log.SetHandler(handler)

	log.WithField("mood", "hyped").Info("This is awesome!")
	log.WithField("mood", "worried").Warn("This is no that awesome...")
	log.WithField("mood", "depressed").Error("This is rather bad.")
}
Output:

Index

Examples

Constants

This section is empty.

Variables

View Source
var ErrMissingDatasetName = errors.New("missing dataset name")

ErrMissingDatasetName is raised when a dataset name is not provided. Set it manually using the SetDataset option or export `AXIOM_DATASET`.

Functions

This section is empty.

Types

type Handler

type Handler struct {
	// contains filtered or unexported fields
}

Handler implements a `log.Handler` used for shipping logs to Axiom.

func New

func New(options ...Option) (*Handler, error)

New creates a new `Handler` configured to ingest logs to the Axiom deployment and dataset as specified by the environment. Refer to `axiom.NewClient()` for more details on how configuring the Axiom deployment works or pass the `SetClient()` option to pass a custom client or `SetClientOptions()` to control the Axiom client creation. To specify the dataset set `AXIOM_DATASET` or use the `SetDataset()` option.

An API token with `ingest` permission is sufficient enough.

Additional options can be supplied to configure the `Handler`.

A handler needs to be closed properly to make sure all logs are sent by calling `Close()`.

func (*Handler) Close

func (h *Handler) Close()

Close the handler and make sure all events are flushed. Closing the handler renders it unusable for further use.

func (*Handler) HandleLog

func (h *Handler) HandleLog(entry *log.Entry) error

HandleLog implements `log.Handler`.

type Option

type Option func(*Handler) error

An Option modifies the behaviour of the Axiom handler.

func SetClient added in v0.4.0

func SetClient(client *axiom.Client) Option

SetClient specifies the Axiom client to use for ingesting the logs.

func SetClientOptions added in v0.4.0

func SetClientOptions(options ...axiom.Option) Option

SetClientOptions specifies the Axiom client options to pass to `axiom.NewClient()`. `axiom.NewClient()` is only called if no client was specified by the `SetClient` option.

func SetDataset added in v0.4.0

func SetDataset(datasetName string) Option

SetDataset specifies the dataset to ingest the logs into. Can also be specified using the `AXIOM_DATASET` environment variable.

func SetIngestOptions added in v0.4.0

func SetIngestOptions(opts ...ingest.Option) Option

SetIngestOptions specifies the ingestion options to use for ingesting the logs.

Jump to

Keyboard shortcuts

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