slogecho

package module
v0.0.3 Latest Latest
Warning

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

Go to latest
Published: Dec 3, 2024 License: MIT Imports: 5 Imported by: 0

README

slog-echo

Simple echo middleware to log http requests using slog.

Usage

package main

import (
	"log/slog"
	"net/http"
	"os"

	"github.com/labstack/echo/v4"
	slogecho "github.com/sse-open/slog-echo"
)

func main() {
	e := echo.New()

	logger := slog.New(slog.NewTextHandler(os.Stdout, nil))

	e.Use(slogecho.New(logger).
		WithFilter(slogecho.IgnorePath("/healthcheck")).
		EchoMiddleware())

	e.GET("/healthcheck", func(c echo.Context) error {
		return c.String(http.StatusOK, "I'm aliver!")
	})

	e.GET("/", func(c echo.Context) error {
		return c.String(http.StatusOK, "Hello, World!")
	})

	e.Logger.Fatal(e.Start(":5000"))
}

License notices

MIT License. Copyright (c) 2024 Star Stable Entertainment AB

Parts of this code was forked and/or inspired by https://github.com/samber/slog-echo ( MIT License. Copyright (c) 2023 Samuel Berthe )

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type Filter

type Filter func(ctx echo.Context) bool

func Accept

func Accept(filter Filter) Filter

Basic

func AcceptHost

func AcceptHost(hosts ...string) Filter

Host

func AcceptHostContains

func AcceptHostContains(parts ...string) Filter

func AcceptHostMatch

func AcceptHostMatch(regs ...regexp.Regexp) Filter

func AcceptHostPrefix

func AcceptHostPrefix(prefixs ...string) Filter

func AcceptHostSuffix

func AcceptHostSuffix(prefixs ...string) Filter

func AcceptMethod

func AcceptMethod(methods ...string) Filter

Method

func AcceptPath

func AcceptPath(urls ...string) Filter

Path

func AcceptPathContains

func AcceptPathContains(parts ...string) Filter

func AcceptPathMatch

func AcceptPathMatch(regs ...regexp.Regexp) Filter

func AcceptPathPrefix

func AcceptPathPrefix(prefixs ...string) Filter

func AcceptPathSuffix

func AcceptPathSuffix(prefixs ...string) Filter

func AcceptStatus

func AcceptStatus(statuses ...int) Filter

Status

func AcceptStatusGreaterThan

func AcceptStatusGreaterThan(status int) Filter

func AcceptStatusGreaterThanOrEqual

func AcceptStatusGreaterThanOrEqual(status int) Filter

func Ignore

func Ignore(filter Filter) Filter

func IgnoreHost

func IgnoreHost(hosts ...string) Filter

func IgnoreHostContains

func IgnoreHostContains(parts ...string) Filter

func IgnoreHostMatch

func IgnoreHostMatch(regs ...regexp.Regexp) Filter

func IgnoreHostPrefix

func IgnoreHostPrefix(prefixs ...string) Filter

func IgnoreHostSuffix

func IgnoreHostSuffix(suffixs ...string) Filter

func IgnoreMethod

func IgnoreMethod(methods ...string) Filter

func IgnorePath

func IgnorePath(urls ...string) Filter

func IgnorePathContains

func IgnorePathContains(parts ...string) Filter

func IgnorePathMatch

func IgnorePathMatch(regs ...regexp.Regexp) Filter

func IgnorePathPrefix

func IgnorePathPrefix(prefixs ...string) Filter

func IgnorePathSuffix

func IgnorePathSuffix(suffixs ...string) Filter

func IgnoreStatus

func IgnoreStatus(statuses ...int) Filter

func IgnoreStatusLessThan

func IgnoreStatusLessThan(status int) Filter

func IgnoreStatusLessThanOrEqual

func IgnoreStatusLessThanOrEqual(status int) Filter

type Middleware

type Middleware struct {
	// contains filtered or unexported fields
}

func New

func New(logger *slog.Logger) Middleware

func (Middleware) EchoMiddleware

func (m Middleware) EchoMiddleware() echo.MiddlewareFunc

func (Middleware) WithExtraAttrFunc

func (m Middleware) WithExtraAttrFunc(f func(echo.Context) []slog.Attr) Middleware

func (Middleware) WithFilter

func (m Middleware) WithFilter(filters ...Filter) Middleware

func (Middleware) WithRequestLoggerConfigModifier

func (m Middleware) WithRequestLoggerConfigModifier(modifiers ...requestLoggerConfigModifier) Middleware

Jump to

Keyboard shortcuts

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