Documentation ¶
Overview ¶
Package zap provides an adapter for the popular github.com/uber-go/zap logging library.
Example ¶
package main import ( "log" "go.uber.org/zap" adapter "github.com/axiomhq/axiom-go/adapters/zap" ) func main() { // Export "AXIOM_DATASET" in addition to the required environment variables. core, err := adapter.New() if err != nil { log.Fatal(err) } logger := zap.New(core) defer func() { if syncErr := logger.Sync(); syncErr != nil { log.Fatal(syncErr) } }() logger.Info("This is awesome!", zap.String("mood", "hyped")) logger.Warn("This is no that awesome...", zap.String("mood", "worried")) logger.Error("This is rather bad.", zap.String("mood", "depressed")) }
Output:
Index ¶
Examples ¶
Constants ¶
This section is empty.
Variables ¶
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 ¶
func New ¶
New creates a new zapcore.Core that ingests logs into Axiom. It automatically takes its configuration from the environment. To connect, export the following environment variables:
- AXIOM_TOKEN
- AXIOM_ORG_ID (only when using a personal token)
- AXIOM_DATASET
The configuration can be set manually using options which are prefixed with "Set".
An api token with "ingest" permission is sufficient enough.
Types ¶
type Option ¶
type Option func(*WriteSyncer) error
An Option modifies the behaviour of the Axiom WriteSyncer.
func SetClient ¶ added in v0.4.0
SetClient specifies the Axiom client to use for ingesting the logs.
func SetClientOptions ¶ added in v0.4.0
SetClientOptions specifies the Axiom client options to pass to axiom.NewClient which is only called if no axiom.Client was specified by the SetClient option.
func SetDataset ¶ added in v0.4.0
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
SetIngestOptions specifies the ingestion options to use for ingesting the logs.
func SetLevelEnabler ¶ added in v0.4.0
func SetLevelEnabler(levelEnabler zapcore.LevelEnabler) Option
SetLevelEnabler sets the level enabler that the Axiom WriteSyncer will us to determine if logs will be shipped to Axiom.
type WriteSyncer ¶
type WriteSyncer struct {
// contains filtered or unexported fields
}
WriteSyncer implements a zapcore.WriteSyncer used for shipping logs to Axiom.
func (*WriteSyncer) Write ¶
func (ws *WriteSyncer) Write(p []byte) (n int, err error)
Write implements zapcore.WriteSyncer.