cloudlogzap

package module
v1.0.0 Latest Latest
Warning

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

Go to latest
Published: Sep 21, 2018 License: MIT Imports: 4 Imported by: 0

README

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.

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type CloudLogCore

type CloudLogCore struct {
	zapcore.Core
	// contains filtered or unexported fields
}

CloudLogCore provides a custom zapcore.Core implementation for sending log messages to CloudLog

func NewCloudlogCore

func NewCloudlogCore(c zapcore.Core, index string, options []cloudlog.Option) (clc *CloudLogCore, err error)

NewCloudlogCore returns a new CloudLogCore or an error if no cloudlog.Client could be instantiated

func (*CloudLogCore) Check

Check overrides the zapcore.Core Check method

func (*CloudLogCore) Write

func (cc *CloudLogCore) Write(e zapcore.Entry, ff []zapcore.Field) (err error)

Write overrides the zapcore.Core Write method

type CloudlogClient

type CloudlogClient interface {
	PushEvent(interface{}) error
}

CloudlogClient interface allows you to pass your own implementation of a cloudlog client or mock clients

Jump to

Keyboard shortcuts

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