logger

package
v0.0.0-...-5230f1d Latest Latest
Warning

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

Go to latest
Published: Oct 26, 2019 License: MIT Imports: 9 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func SetErrorHandler

func SetErrorHandler(fn func(error))

SetErrorHandler permet de spécifier une fonction à appeler en cas d'erreur lors de l'encodage ou de l'envoi vers la sortie.

Types

type Context

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

Context représente un contexte composé d'un ensemble de clé/valeur.

func (*Context) Logger

func (ctx *Context) Logger() Logger

Logger retourne le logger associé à ce contexte.

func (*Context) Set

func (ctx *Context) Set(key string, value interface{}) *Context

Set permet d'ajouter une paire clé/valeur au contexte.

func (*Context) Setf

func (ctx *Context) Setf(key string, format string, args ...interface{}) *Context

Setf permet d'ajouter une paire clé/valeur au contexte. La valeur est créée via l'utilisation d'une chaine de format et de paramètres.

type Encoder

type Encoder interface {
	// Encode l'évènement de log au format propre à l'encodeur.
	Encode(event *Event) ([]byte, error)
}

Encoder représente l'interface qui doit être implémenter par tous les encodeurs.

func GetEnvEncoder

func GetEnvEncoder() Encoder

GetEnvEncoder permet de créer une instance de l'encodeur spécifié par la variable d'environnement: ARMEN_LOGGER_ENCODER

func NewLogFmtEncoder

func NewLogFmtEncoder() Encoder

NewLogFmtEncoder permet de créer une instance d'un encodeur de type "LogFmtEncoder".

type Event

type Event struct {
	// Le niveau de log.
	Level Level
	// L'application, le service... en cours d'exécution ou nil.
	Runner *Runner
	// La date et l'heure de création du log.
	Timestamp time.Time
	// L'ensemble de clé/valeur à associées au message.
	KeyValues []interface{}
	// Le message de log.
	Message string
	// La sortie vers où envoyer le log.
	Output Output
	// contains filtered or unexported fields
}

Event représente un évènement de log. Une instance de ce type est utilisée à chaque fois qu'un log doit être effectué.

func (*Event) Msg

func (event *Event) Msg(msg string)

Msg permet de définir le message de log pour cet évènement. L'appel à cette fonction déclenche l'encodage et l'envoi vers la sortie.

func (*Event) Msgf

func (event *Event) Msgf(format string, args ...interface{})

Msgf permet de définir le message de log pour cet évènement. Le message est créé via l'utilisation d'une chaine de format et de paramètres. L'appel à cette fonction déclenche l'encodage et l'envoi vers la sortie.

func (*Event) Set

func (event *Event) Set(key string, value interface{}) *Event

Set permet d'ajouter une paire clé/valeur à l'évènement.

func (*Event) Setf

func (event *Event) Setf(key string, format string, args ...interface{}) *Event

Setf permet d'ajouter une paire clé/valeur à l'évènement. La valeur est créée via l'utilisation d'une chaine de format et de paramètres.

type Level

type Level int32

Level représente un niveau de log.

const (
	TRACE Level = iota
	DEBUG
	INFO
	NOTICE
	WARNING
	ERROR
	FATAL
)

Les différents niveaux de log utilisables.

func GetEnvLevel

func GetEnvLevel() Level

GetEnvLevel permet de récupérer le niveau de log spécifié par la variable d'environnement: ARMEN_LOGGER_LEVEL

func GetLevelFromString

func GetLevelFromString(level string) Level

GetLevelFromString retourne le niveau de log correspondant à la chaîne de caractères passée en paramètre. Si celle-ci n'est pas valide, le niveau de log TRACE est utilisé par defaut.

type LogFmtEncoder

type LogFmtEncoder struct{}

LogFmtEncoder représente l'encodeur qui utilise le format "logfmt" pour encoder l'évènement de log. En fait, seuls les couples clé/valeur de l'évènement sont au format "logfmt". Lien: https://brandur.org/logfmt

func (*LogFmtEncoder) Encode

func (*LogFmtEncoder) Encode(event *Event) ([]byte, error)

Encode encode au format "logfmt" l'évènement de log.

type Logger

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

Logger représente un "logger".

func GetEnvLogger

func GetEnvLogger() Logger

GetEnvLogger permet d'instancier un logger via l'utilisation des différentes variables d'environnement.

func NewLogger

func NewLogger(level Level, output Output, encoder Encoder) Logger

NewLogger permet de créer une instance d'un logger.

func (Logger) Context

func (logger Logger) Context() *Context

Context permet de créer un nouveau contexte en clonant le contexte courant. La fonction "Logger()" du contexte peut être utilisée pour récupérer le logger.

func (*Logger) Debug

func (logger *Logger) Debug() *Event

Debug permet de débuter la création d'un message log de niveau DEBUG.

func (*Logger) Error

func (logger *Logger) Error() *Event

Error permet de débuter la création d'un message log de niveau ERROR.

func (*Logger) Fatal

func (logger *Logger) Fatal() *Event

Fatal permet de débuter la création d'un message log de niveau FATAL.

func (Logger) GetLevel

func (logger Logger) GetLevel() Level

GetLevel permet de récupérer le niveau log.

func (*Logger) Info

func (logger *Logger) Info() *Event

Info permet de débuter la création d'un message log de niveau INFO.

func (*Logger) Notice

func (logger *Logger) Notice() *Event

Notice permet de débuter la création d'un message log de niveau NOTICE.

func (Logger) Runner

func (logger Logger) Runner(id string, name string) Logger

Runner permet de spécifier l'identifiant et le nom du "Runner".

func (Logger) SetLevel

func (logger Logger) SetLevel(level Level) Logger

SetLevel permet de spécifier le niveau log.

func (*Logger) Trace

func (logger *Logger) Trace() *Event

Trace permet de débuter la création d'un message log de niveau TRACE.

func (*Logger) Warning

func (logger *Logger) Warning() *Event

Warning permet de débuter la création d'un message log de niveau WARNING.

type Output

type Output interface {
	// Indique si le niveau de log doit être encodé.
	Level() bool
	// Indique si la date et l'heure doivent être encodées.
	Timestamp() bool
	// Indique si un "\n" doit être ajouté à la fin du message par l'encodeur.
	NewLine() bool
	// Cette fonction écrit les données du buffer résultant de l'encodage.
	Log(level Level, buffer []byte) error
}

Output décrit l'interface qui doit être implémentée par toutes les sorties.

func GetEnvOutput

func GetEnvOutput() Output

GetEnvOutput permet de créer une instance de la sortie spécifiée par la variable d'environnement: ARMEN_LOGGER_OUTPUT

func NewStderrOutput

func NewStderrOutput() Output

NewStderrOutput permet de créer une sortie pour Stderr.

func NewStdoutOutput

func NewStdoutOutput() Output

NewStdoutOutput permet de créer une sortie pour Stdout.

func NewSyslogOutput

func NewSyslogOutput(writer *syslog.Writer) Output

NewSyslogOutput permet de créer une instance du type "SyslogOutput".

func NewWriterOutput

func NewWriterOutput(iow io.Writer, op *OutputProperties) Output

NewWriterOutput permet de créer une instance du type "WriterOutput".

type OutputProperties

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

OutputProperties permet de définir les propriétés d'une sortie.

func NewOutputProperties

func NewOutputProperties(logLevel bool, logTimestamp bool, addNewLine bool) *OutputProperties

NewOutputProperties permet de créer une instance du type "OutputProperties".

func (*OutputProperties) Level

func (op *OutputProperties) Level() bool

Level permet d'indiquer à l'encodeur si il doit encodé le niveau de log.

func (*OutputProperties) NewLine

func (op *OutputProperties) NewLine() bool

NewLine permet d'indiquer à l'encodeur si il doit ajouté un "\n" à la fin du message.

func (*OutputProperties) Timestamp

func (op *OutputProperties) Timestamp() bool

Timestamp permet d'indiquer à l'encodeur si il doit encodé la date et l'heure.

type Runner

type Runner struct {
	// L'identifiant unique du "Runner".
	ID string
	// Le nom du "Runner".
	Name string
}

Runner représente l'application, le service... en cours d'exécution.

type SyslogOutput

type SyslogOutput struct {
	*syslog.Writer
}

SyslogOutput représente une sortie vers log système.

func (*SyslogOutput) Level

func (output *SyslogOutput) Level() bool

Level indique que le niveau de log ne doit pas être encodé.

func (*SyslogOutput) Log

func (output *SyslogOutput) Log(level Level, buffer []byte) error

Log écrit les données du buffer résultant de l'encodage vers le log système.

func (*SyslogOutput) NewLine

func (output *SyslogOutput) NewLine() bool

NewLine indique qu'il n'est pas nécessaire d'ajouter un "\n" à l'encodage.

func (*SyslogOutput) Timestamp

func (output *SyslogOutput) Timestamp() bool

Timestamp indique que la date et l'heure ne doivent pas être encodées.

type WriterOutput

type WriterOutput struct {
	io.Writer
	*OutputProperties
}

WriterOutput permet de définir des sorties basées sur un "Writer".

func (*WriterOutput) Log

func (output *WriterOutput) Log(level Level, buffer []byte) error

Log écrit les données du buffer résultant de l'encodage.

Jump to

Keyboard shortcuts

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