mirror of
https://github.com/ScuroNeko/mtg.git
synced 2026-08-31 11:54:01 +03:00
Add documentation for logger
This commit is contained in:
@@ -1,5 +1,14 @@
|
|||||||
|
// Package logger has implementation of loggers for mtglib.Logger
|
||||||
|
// interface.
|
||||||
|
//
|
||||||
|
// Please see a description of that interface to get some agreements
|
||||||
|
// which are used by mtglib.
|
||||||
package logger
|
package logger
|
||||||
|
|
||||||
|
// StdLikeLogger is an interface which is close to log.Logger. This is
|
||||||
|
// commonly used by many 3pp tools. While mtglib itself does not need
|
||||||
|
// it, it is always a good idea to support it and have a transient end
|
||||||
|
// to end logging.
|
||||||
type StdLikeLogger interface {
|
type StdLikeLogger interface {
|
||||||
Printf(format string, args ...interface{})
|
Printf(format string, args ...interface{})
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -15,6 +15,7 @@ func (n noopLogger) InfoError(_ string, _ error) {}
|
|||||||
func (n noopLogger) WarningError(_ string, _ error) {}
|
func (n noopLogger) WarningError(_ string, _ error) {}
|
||||||
func (n noopLogger) DebugError(_ string, _ error) {}
|
func (n noopLogger) DebugError(_ string, _ error) {}
|
||||||
|
|
||||||
|
// NewNoopLogger returns a logger which discards all events.
|
||||||
func NewNoopLogger() mtglib.Logger {
|
func NewNoopLogger() mtglib.Logger {
|
||||||
return noopLogger{}
|
return noopLogger{}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -114,6 +114,7 @@ func (z *zeroLogContext) attachCtx(evt *zerolog.Event) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// NewZeroLogger returns a logger which is using rs/zerolog library.
|
||||||
func NewZeroLogger(log zerolog.Logger) mtglib.Logger {
|
func NewZeroLogger(log zerolog.Logger) mtglib.Logger {
|
||||||
return &zeroLogContext{
|
return &zeroLogContext{
|
||||||
log: &log,
|
log: &log,
|
||||||
|
|||||||
@@ -76,6 +76,8 @@ type AntiReplayCache interface {
|
|||||||
// a worker pool, so in worst cases you can expect that you invoke this
|
// a worker pool, so in worst cases you can expect that you invoke this
|
||||||
// object more frequent than defined proxy concurrency.
|
// object more frequent than defined proxy concurrency.
|
||||||
type IPBlocklist interface {
|
type IPBlocklist interface {
|
||||||
|
// Contains checks if given IP address belongs to this blocklist If.
|
||||||
|
// it is, a connection is terminated .
|
||||||
Contains(net.IP) bool
|
Contains(net.IP) bool
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -107,6 +109,26 @@ type TimeAttackDetector interface {
|
|||||||
Valid(time.Time) error
|
Valid(time.Time) error
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Logger defines an interface of the logger used by mtglib.
|
||||||
|
//
|
||||||
|
// Each logger has a name. It is possible to stack names to organize
|
||||||
|
// poor-man namespaces. Also, each logger must be able to bind
|
||||||
|
// parameters to avoid pushing them all the time.
|
||||||
|
//
|
||||||
|
// Example
|
||||||
|
//
|
||||||
|
// logger := SomeLogger{}
|
||||||
|
// logger = logger.BindStr("ip", net.IP{127, 0, 0, 1})
|
||||||
|
// logger.Info("Hello")
|
||||||
|
//
|
||||||
|
// In that case, ip is bound as a parameter. It is a great idea to
|
||||||
|
// put this parameter somewhere in a log message.
|
||||||
|
//
|
||||||
|
// logger1 = logger.BindStr("param1", "11")
|
||||||
|
// logger2 = logger.BindInt("param2", 11)
|
||||||
|
//
|
||||||
|
// logger1 should see no param2 and vice versa, logger2 should not see param1
|
||||||
|
// If you attach a parameter to a logger, parents should not know about that.
|
||||||
type Logger interface {
|
type Logger interface {
|
||||||
Named(name string) Logger
|
Named(name string) Logger
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user