kayvee

package module
v5.1.0+incompatible Latest Latest
Warning

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

Go to latest
Published: Oct 5, 2016 License: Apache-2.0 Imports: 3 Imported by: 0

README

kayvee

-- import "gopkg.in/Clever/kayvee-go.v5"

Package kayvee provides methods to output human and machine parseable strings, with a "json" format.

Logger API Documentation

Example

    package main

    import(
        "fmt"
        "time"

        "gopkg.in/Clever/kayvee-go.v5/logger"
    )

    func main() {
        myLogger := logger.New("myApp")

        // Simple debugging
        myLogger.Debug("Service has started")

        // Make a query and log its length
        query_start := time.Now()
        myLogger.GaugeFloat("QueryTime", time.Since(query_start).Seconds())

        // Output structured data
        myLogger.InfoD("DataResults", logger.M{"key": "value"})

        // You can use the M alias for your key value pairs
        myLogger.InfoD("DataResults", logger.M{"shorter": "line"})
    }

Testing

Run make test to execute the tests

Change log

  • v5.0 - Middleware logger now creates a new logger on each request.
    • Breaking change to middleware.New constructor.
  • v4.0
    • Added methods to read and write the Logger object from a a context.Context object.
    • Middleware now injects the logger into the request context.
    • Updated to require Go 1.7.
  • v4.0 - Removed sentry-go dependency
  • v2.4 - Add kayvee-go/validator for asserting that raw log lines are in a valid kayvee format.
  • v2.3 - Expose logger.M.
  • v2.2 - Remove godeps.
  • v2.1 - Add kayvee-go/logger with log level, counters, and gauge support
  • v0.1 - Initial release.

Backward Compatibility

The kayvee 1.x interface still exist but is considered deprecated. You can find documentation on using it in the compatibility guide

Publishing

To release a new version run make bump-major, make bump-minor, or make bump-patch as appropriate on master (after merging your PR). Then, run git push --tags.

Documentation

Overview

Package kayvee provides methods to output human and machine parseable strings, with a "key=val" format.

## Example

Here's an example program that outputs a kayvee formatted string:

package main

import(
  "fmt"
  "gopkg.in/Clever/kayvee.v0"
)

func main() {
  fmt.Println(kayvee.Format(map[string]interface{}{"hello": "world"}))
}

## Testing

Run `make test` to execute the tests

## Change log

v0.0.1 - Initial release.

Index

Constants

View Source
const (
	Unknown  LogLevel = "unknown"
	Critical          = "critical"
	Error             = "error"
	Warning           = "warning"
	Info              = "info"
	Trace             = "trace"
)

Constants used to define different LogLevels supported

Variables

View Source
var Version = "5.1.0"

Version is a string containing the version of this library.

Functions

func Format

func Format(data map[string]interface{}) string

Format converts a map to a string of space-delimited key=val pairs

func FormatLog

func FormatLog(source string, level LogLevel, title string, data map[string]interface{}) string

FormatLog is similar to Format, but takes additional reserved params to promote logging best-practices

Types

type LogLevel

type LogLevel string

LogLevel denotes the level of a logging

type Logger

type Logger interface {
	Info(title string, data map[string]interface{})
	Warning(title string, data map[string]interface{})
	Error(title string, data map[string]interface{}, err error)
}

Logger is an interface satisfied by all loggers that use kayvee to Log results

Directories

Path Synopsis
Package middleware provides a customizable Kayvee logging middleware for HTTP servers.
Package middleware provides a customizable Kayvee logging middleware for HTTP servers.

Jump to

Keyboard shortcuts

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