loggers

package module
v0.0.0-...-19cd21e Latest Latest
Warning

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

Go to latest
Published: Mar 8, 2024 License: Apache-2.0 Imports: 7 Imported by: 1

Documentation

Overview

Multiple Logs GitHub repository:

https://github.com/takecontrolsoft/go_multi_log

Package "loggers"

This Package provides different implementations for loggers, which are possible to be registered.

The package supports:

The common interface loggers.LoggerInterface makes it possible this package to be extended by implementing additional custom loggers for logging in json, xml and other formats, as well as sending the logs to external services.

Take Control - software & infrastructure

The package is created and maintained by "Take Control - software & infrastructure".

Web site: https://takecontrolsoft.eu

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type ConsoleLogger

type ConsoleLogger struct {
	LoggerType
}

ConsoleLogger type represents the logger that print the messages to the standard output os.Stdout.

func NewConsoleLogger

func NewConsoleLogger(level levels.LogLevel, format string) *ConsoleLogger

Returns an instance of ConsoleLogger with given log level and format string defined by the caller.

func NewConsoleLoggerDefault

func NewConsoleLoggerDefault() *ConsoleLogger

Returns an instance of ConsoleLogger with default log level "Info".

func (*ConsoleLogger) Log

func (logger *ConsoleLogger) Log(level levels.LogLevel, arg any)

Prints the message or the object "arg" into the console. If there is no format set when initializing this ConsoleLogger, a default format is used: {time} {log level}: [{message}]

func (*ConsoleLogger) LogF

func (logger *ConsoleLogger) LogF(level levels.LogLevel, format string, args ...interface{})

Prints one or more objects "args" into the console as a message formatted using the given format string by the caller.

type FileLogger

type FileLogger struct {
	LoggerType
	FileOptions
}

A FileLogger is safe for concurrent use by multiple goroutines

func NewFileLogger

func NewFileLogger(level levels.LogLevel, format string, options FileOptions) *FileLogger

Returns an instance of FileLogger with given log level and format string defined by the caller. FileOptions are not required, but could be used for setting the file name prefix and file extension as well as the path location, where the log files to be stored.

func NewFileLoggerDefault

func NewFileLoggerDefault() *FileLogger

Returns an instance of FileLogger with default log level "Info". Default FileOptions are used:

  • Directory: current executable directory.
  • FilePrefix: "sync_server"
  • FileExtension: ".log"

func (*FileLogger) Log

func (logger *FileLogger) Log(level levels.LogLevel, arg any)

Prints the message or the object "arg" into files (named with goroutine id). If there is no format set when initializing this FileLogger, a default format is used: {time} {log level}: [{message}]

func (*FileLogger) LogF

func (logger *FileLogger) LogF(level levels.LogLevel, format string, args ...interface{})

Prints one or more objects "args" into files (named with goroutine id) as a message formatted using the given format string by the caller.

type FileOptions

type FileOptions struct {
	Directory, FilePrefix, FileExtension string
}

Represent a set of file options, which are used when the log file name is generated.

  • Directory - an absolute or relative path to log files location where the process has write access.
  • FilePrefix - should be a short string of symbols allowed for OS file names.
  • FileExtension - should starts with ".".

type LoggerInterface

type LoggerInterface interface {
	Log(level levels.LogLevel, arg any)
	LogF(level levels.LogLevel, format string, args ...interface{})
	GetLevel() levels.LogLevel
	SetLevel(level levels.LogLevel)
	Start()
	Stop()
}

LoggerInterface describes all the methods required to be implemented by the loggers. Each logger, which implements this interface could be registered to log messages and objects.

type LoggerType

type LoggerType struct {
	LoggerInterface
	Level  levels.LogLevel
	Format string
	// contains filtered or unexported fields
}

LoggerType provides base implementation of loggers.LoggerInterface and can be reused when extending the package with adding new loggers implementations.

func (*LoggerType) GetLevel

func (logger *LoggerType) GetLevel() levels.LogLevel

Reports the log level for this logger.

func (*LoggerType) IsLogAllowed

func (logger *LoggerType) IsLogAllowed(level levels.LogLevel) bool

Reports if the log message will be printed based on the log level. The log level can be set for a specific logger using loggers.LoggerType.SetLevel. loggers.LoggerType.IsLogAllowed returns false if the logger is stopped using loggers.LoggerType.Stop function.

func (*LoggerType) SetLevel

func (logger *LoggerType) SetLevel(level levels.LogLevel)

Sets the log level for this logger.

func (*LoggerType) Start

func (logger *LoggerType) Start()

Resumes printing logs by this logger.

func (*LoggerType) Stop

func (logger *LoggerType) Stop()

Stops printing logs by this logger.

Jump to

Keyboard shortcuts

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