loggergo

package module
v1.2.10 Latest Latest
Warning

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

Go to latest
Published: Jun 24, 2024 License: Apache-2.0 Imports: 18 Imported by: 6

README

loggergo

GitHub tag (with filter) Go Reference Maintainability

Logging library I've come up with in order unify way my apps implement logging.

diagram

Documentation

Overview

Package loggergo provides functionality for configuring and setting up different logging modes in Go applications. It includes support for OpenTelemetry format, JSON format, and plain format with different flavors. The package also supports enabling OpenTelemetry tracing for the logs.

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func LogLevelFromString added in v1.2.8

func LogLevelFromString(name string) slog.Level

func LoggerInit

func LoggerInit(ctx context.Context, config Config, additionalAttrs ...any) (*slog.Logger, error)

The LoggerInit function initializes a logger with the provided configuration and additional attributes.

Types

type Config added in v1.2.4

type Config struct {
	Level              slog.Leveler `json:"level"`             // Level specifies the log level. Valid values are any of the slog.Level constants (e.g., slog.LevelInfo, slog.LevelError). Default is slog.LevelInfo.
	Format             LogFormat    `json:"format"`            // Format specifies the log format. Valid values are loggergo.LogFormatText, loggergo.LogFormatJSON, and loggergo.LogFormatOtel. Default is loggergo.LogFormatJSON.
	DevMode            bool         `json:"dev_mode"`          // Dev indicates whether the logger is running in development mode.
	DevFlavor          DevFlavor    `json:"dev_flavor"`        // DevFlavor specifies the development flavor. Valid values are loggergo.DevFlavorTint and loggergo.DevFlavorSlogor. Default is loggergo.DevFlavorTint.
	OutputStream       *os.File     `json:"output_stream"`     // OutputStream specifies the output stream for the logger. Valid values are "stdout" (default) and "stderr".
	OtelTracingEnabled bool         `json:"otel_enabled"`      // OtelTracingEnabled specifies whether OpenTelemetry support is enabled. Default is true.
	OtelLoggerName     string       `json:"otel_logger_name"`  // OtelLoggerName specifies the name of the logger for OpenTelemetry.
	Output             OutputType   `json:"output"`            // Output specifies the type of output for the logger. Valid values are loggergo.OutputConsole, loggergo.OutputOtel, and loggergo.OutputFanout. Default is loggergo.OutputConsole.
	OtelServiceName    string       `json:"otel_service_name"` // OtelServiceName specifies the service name for OpenTelemetry.
}

Config represents the configuration options for the LoggerGo logger.

type DevFlavor added in v1.2.6

type DevFlavor int

DevFlavor represents the flavor of the development environment.

const (
	// DevFlavorTint represents the "tint" development flavor.
	DevFlavorTint DevFlavor = iota
	// DevFlavorSlogor represents the "slogor" development flavor.
	DevFlavorSlogor
	// DevFlavorDevslog represents the production "devslog" flavor.
	DevFlavorDevslog
)

func DevFlavorFromString added in v1.2.9

func DevFlavorFromString(name string) DevFlavor

func (DevFlavor) String added in v1.2.6

func (f DevFlavor) String() string

type LogFormat added in v1.2.6

type LogFormat int

LogFormat represents the format of the log.

const (
	// LogFormatText represents text format.
	LogFormatText LogFormat = iota
	// LogFormatJSON represents JSON format.
	LogFormatJSON
	// LogFormatOtel represents OTEL (JSON) format.
	LogFormatOtel
)

func LogFormatFromString added in v1.2.9

func LogFormatFromString(name string) LogFormat

func (LogFormat) String added in v1.2.6

func (f LogFormat) String() string

type OutputType added in v1.2.5

type OutputType int

OutputType represents the type of output for the logger.

const (
	// OutputConsole represents console output.
	OutputConsole OutputType = iota
	// OutputOtel represents otel output.
	OutputOtel
	// OutputFanout represents both console and otel output.
	OutputFanout
)

func OutputTypeFromString added in v1.2.9

func OutputTypeFromString(name string) OutputType

func (OutputType) String added in v1.2.5

func (o OutputType) String() string

Jump to

Keyboard shortcuts

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