# inconshreveable/log15

Structured, composable logging for Go

Repository: https://github.com/inconshreveable/log15
Canonical: https://ross.abutalabs.com/products/log15
Homepage: https://godoc.org/github.com/inconshreveable/log15
Language: Go
License: NOASSERTION
License Family: other
Last push: 2026-05-13T19:13:43+00:00

## Health v2 (maintenance only)
Score: 69/100 (v2, computed 2026-09-03T02:20:16.233290+00:00)
- activity 82, release rhythm 35, longevity 100
- inputs: {"age_days": 4489, "days_push": 112, "days_rel": null, "gap_med": null, "n_releases_24m": 0}
- flags: no_releases, no_license
- formula: round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10)

## Adoption (not part of the score)
Stars 1104, forks 143 (observed 2026-08-28T04:03:36.295356+00:00)

## What it is
log15 is a structured, composable logging library for Go that promotes key/value pair logging with child loggers and a flexible Handler interface. It offers built-in output to files, streams, syslog, and the network, and now provides a v3 module with a compatibility layer for migration.

## Use cases
- add structured key/value logging to a Go application
- create child loggers with inherited context
- log to files, syslog, or the network in Go
- build custom logging pipelines with a small Handler API
- migrate legacy log15 code to a Go-modules-compatible v3

## When to choose
- you want simple, opinionated structured logging in Go with minimal dependencies
- you need composable handlers for forking, buffering, or failover of log records
- you have existing log15 code and want to move to the v3 module

## When to avoid
- you are starting a new Go project - the standard library's log/slog is likely a better fit
- you need caller file/stack information, which was removed in v3
- you need color terminal output via the term subpackage, which no longer exists in v3

## Facets
- artifact type: library
- maturity: maintenance
- function: logging, developer-tools
- domain: developer-tools, backend
- platform: go, cross-platform
- tags: structured-logging, golang, key-value-logging, handler-based, slog-alternative

## Member repositories
- inconshreveable/log15 (main) score 69

## Provenance
- Observed fields: from GitHub, fetched 2026-08-28T04:03:36.295356+00:00.
- Health v2: computed from the inputs above; adoption is never an input.
- Inferred fields (summary, facets, guidance): AI-extracted, prompt v1, taxonomy v1, on 2026-08-30T06:45:28.097438+00:00, confidence not recorded.
  - readme: https://github.com/inconshreveable/log15 (fetched 2026-08-28T04:03:36.295356+00:00, sha 4293eb6abeb0)
  - homepage: https://godoc.org/github.com/inconshreveable/log15 (fetched 2026-08-29T12:47:59.401573+00:00, sha 7549055754f6)
  - site_page: https://pkg.go.dev/about (fetched 2026-08-29T12:47:59.414444+00:00, sha 757852027879)
  - site_page: https://go.dev/about (fetched 2026-08-29T12:47:59.417599+00:00, sha 8b6453863a90)
  - site_page: https://pkg.go.dev/github.com/inconshreveable/log15 (fetched 2026-08-29T12:47:59.411644+00:00, sha 46d21f3dfd1f)
  - site_page: https://go.dev/project (fetched 2026-08-29T12:47:59.420644+00:00, sha d5ca00bb378b)
- Data as of 2026-08-30T08:39:29.467469+00:00.
