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:
- loggers.ConsoleLogger, which logs the messages to the console
- loggers.FileLogger, which logs the messages to files separated by goroutines.
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}]
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}]
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.