Skip to content
This repository has been archived by the owner on Jun 10, 2021. It is now read-only.
/ go-cloudlogzap Public archive

CloudLog integration for go.uber.org/zap

License

Notifications You must be signed in to change notification settings

anexia-it/go-cloudlogzap

Repository files navigation

go-cloudlogzap

license GoDoc Build Status codecov Go Report Card

go-cloudlogzap implements a custom zapcore to hook log message from a zap.Logger to Anexia's CloudLog.

Motivation

The primary motivation for go-cloudlogzap is the need to send log output from go.uber.org/zap's logger to ANEXIA's CloudLog infrastructure.

Install

go get -u github.com/anexia-it/go-cloudlogzap

Quickstart

Use zap's zapcore.NewTee func to tee any log message to multiple zapcores. Use logger.WithOptions to create a new logger from the multi-core.

opts := []cloudlog.Option{...}
multiCore, err := zap.WrapCore(func(core zapcore.Core) zapcore.Core {
  cloudlogCore, err := NewCloudlogCore(core, indexName, opts)
  if err != nil {
    return core
  }
  return zapcore.NewTee(core, cloudlogCore)
})
logger = logger.WithOptions(multiCore)

Custom CloudLog Options

Important:
To create a functional cloudlog core, pass the following cloudlog.Option slice to the core initialization:

  • cloudlog.OptionCACertificateFile
  • cloudlog.OptionClientCertificateFile

Issue tracker

Issues in go-cloudlogzap are tracked using the corresponding Github issue tracker.

Status

The current release is v1.0.0 Changes to go-cloudlogzap are subject to semantic versioning. The ChangeLog provides information on releases and changes.

license

go-cloudlogzap is licensed under the terms of the MIT license.