Skip to content
/ logf Public

Faster-than-light, asynchronous, structured logger in Go with zero allocation count.

License

Notifications You must be signed in to change notification settings

ssgreg/logf

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ecb5527 · Jun 26, 2023
Dec 2, 2021
Nov 12, 2021
Nov 3, 2018
May 16, 2023
Nov 1, 2018
Dec 2, 2018
Nov 12, 2021
Sep 4, 2017
Dec 2, 2021
Nov 28, 2018
Nov 28, 2018
Nov 21, 2018
Nov 21, 2018
Dec 2, 2018
Nov 8, 2018
Nov 15, 2018
Nov 20, 2018
Nov 28, 2018
Dec 10, 2018
Nov 12, 2021
Nov 12, 2018
Nov 12, 2018
Nov 12, 2021
Nov 14, 2018
Aug 14, 2019
Nov 6, 2019
Nov 6, 2019
Jun 26, 2023
Jun 26, 2023
Nov 12, 2021
Nov 12, 2021
Nov 12, 2021
Nov 6, 2018
Dec 13, 2018
Dec 2, 2021
Jan 8, 2021
Dec 2, 2021
Dec 2, 2021
Nov 2, 2018
Dec 2, 2018
Nov 11, 2018
Dec 1, 2018
Nov 6, 2019
Nov 6, 2019

Repository files navigation

logf

GoDoc Build Status Go Report Status Coverage Status

Faster-than-light, asynchronous, structured logger in Go with zero allocation count.

Example

The following example creates a new logf logger and logs a message.

package main

import (
    "runtime"

    "github.com/ssgreg/logf"
)

func main() {
    // The default channel writer writes to stdout using json encoder.
    writer, writerClose := logf.NewChannelWriter.Default()
    defer writerClose()

    logger := logf.NewLogger(logf.LevelInfo, writer)

    logger.Info("got cpu info", logf.Int("count", runtime.NumCPU()))
}

The output is the following:

{"level":"info","ts":"2018-11-03T09:49:56+03:00","msg":"got cpu info","count":8}

Benchmarks

TODO

TODOs

Benchmarks:

  • benchmarks descriptions
  • non-parallel execution explanation
  • scenario decomposition
  • use zerolog object and array marshaller
  • add checked logging for normal (not disabled) cases

Encoder:

  • move to clone
  • use EscapeString instead

About

Faster-than-light, asynchronous, structured logger in Go with zero allocation count.

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages