clawbot e76b1cbcb5 fix: split Dockerfile with pinned images and add CI workflow
- Pin golangci-lint to v1.64.8 by sha256 digest
- Pin golang to 1.22.12 by sha256 digest
- Lint stage runs make fmt-check + make lint
- Test stage runs make test with dependency on lint stage
- Remove redundant final stage (library has no binary)
- Add fmt-check, check, hooks targets to Makefile
- Add .gitea/workflows/check.yml for CI

closes #9
2026-03-02 02:13:08 -08:00
2024-06-14 05:39:08 -07:00
2024-06-10 02:39:01 -07:00
2024-06-14 05:39:03 -07:00
fmt
2024-06-14 05:47:29 -07:00
2024-05-22 14:52:20 -07:00
2024-05-13 21:43:47 -07:00
2024-05-22 14:52:20 -07:00
2024-06-14 05:53:22 -07:00
2024-06-14 05:53:22 -07:00
2024-05-13 21:43:47 -07:00
2024-05-13 21:43:47 -07:00

simplelog

Summary

simplelog is an opinionated logging package designed to facilitate easy and structured logging in Go applications with an absolute minimum of boilerplate.

The idea is that you can add a single import line which replaces the stdlib log/slog default handler, and solve the 90% case for logging.

Current Status

Released v1.0.0 2024-06-14. Works as intended. No known bugs.

Features

  • if output is a tty, outputs pretty color logs
  • if output is not a tty, outputs json
  • supports delivering each log message via a webhook

Planned Features

  • supports delivering logs via tcp RELP (e.g. to remote rsyslog using imrelp)

Installation

To use simplelog, first ensure your project is set up with Go modules:

go mod init your_project_name

Then, add SimpleLog to your project:

go get sneak.berlin/go/simplelog

Usage

Below is an example of how to use SimpleLog in a Go application. This example is provided in the form of a main.go file, which demonstrates logging at various levels using structured logging syntax.

package main

import (
	"log/slog"
	_ "sneak.berlin/go/simplelog"
)

func main() {

    // log structured data with slog as usual:
	slog.Info("User login attempt", slog.String("user", "JohnDoe"), slog.Int("attempt", 3))
	slog.Warn("Configuration mismatch", slog.String("expected", "config.json"), slog.String("found", "config.dev.json"))
	slog.Error("Failed to save data", slog.String("reason", "permission denied"))
}

License

WTFPL

Description
sane logging defaults for go
Readme 108 KiB
Languages
Go 85.6%
Dockerfile 6.2%
Makefile 5.4%
Shell 2.8%