bosco

package module
v0.2.1 Latest Latest
Warning

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

Go to latest
Published: Dec 25, 2019 License: MIT Imports: 8 Imported by: 0

README

bosco

Ce module met à disposition un "logger".


Dans la marine nationale française, le bosco est le maître de manœuvre.

Documentation

Index

Constants

View Source
const Version = "0.2.1"

Version est le numéro de version de la dernière "release".

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 Encoder

type Encoder interface {
	// Encode le message de log dans un format propre à l'encodeur.
	Encode(*Message) ([]byte, error)
}

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

func NewStdEncoder

func NewStdEncoder() Encoder

NewStdEncoder permet de créer une nouvelle instance d'un encodeur de type "StdEncoder".

type Level

type Level uint32

Level représente un niveau de log.

const (
	// Trace
	TLevel Level = iota
	// Debug
	DLevel
	// Info
	ILevel
	// Notice
	NLevel
	// Warning
	WLevel
	// Error
	ELevel
	// Fatal
	FLevel
)

Les différents niveaux de log utilisables.

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 "TLevel" est utilisé par defaut.

type Logger

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

Logger représente un logger.

func New

func New(runner string, level Level, output Output, encoder Encoder) *Logger

New permet de créer un nouveau "Logger".

func (*Logger) Debug

func (l *Logger) Debug() *Message

Debug permet de débuter la création d'un message de niveau "DLevel".

func (*Logger) Error

func (l *Logger) Error() *Message

Error permet de débuter la création d'un message de niveau "ELevel".

func (*Logger) Fatal

func (l *Logger) Fatal() *Message

Fatal permet de débuter la création d'un message de niveau "FLevel".

func (*Logger) Info

func (l *Logger) Info() *Message

Info permet de débuter la création d'un message de niveau "ILevel".

func (*Logger) Notice

func (l *Logger) Notice() *Message

Notice permet de débuter la création d'un message de niveau "NLevel".

func (*Logger) Set

func (l *Logger) Set(key string, value interface{}) *Logger

Set permet d'ajouter un couple clé/valeur au contexte.

func (*Logger) SetEncoder

func (l *Logger) SetEncoder(encoder Encoder)

SetEncoder permet de modifier la façon d'encoder les messages.

func (*Logger) SetLevel

func (l *Logger) SetLevel(level Level)

SetLevel permet de modifier le niveau de log.

func (*Logger) SetOutput

func (l *Logger) SetOutput(output Output)

SetOutput permet de modifier la sortie utilisée pour les messages

func (*Logger) SetRunner

func (l *Logger) SetRunner(runner string)

SetRunner permet de modifier le "runner".

func (*Logger) Setf

func (l *Logger) Setf(key string, format string, args ...interface{}) *Logger

Setf permet d'ajouter un couple clé/valeur au contexte. La valeur est créée via l'utilisation d'une chaine de formatage et d'arguments.

func (*Logger) Trace

func (l *Logger) Trace() *Message

Trace permet de débuter la création d'un message de niveau "TLevel".

func (*Logger) Warning

func (l *Logger) Warning() *Message

Warning permet de débuter la création d'un message de niveau "WLevel".

type Message

type Message struct {
	// Les attributs du logger à l'origine de ce message.
	Logger *loggerFields
	// Le niveau de log du message.
	Level Level
	// La date et l'heure de création du message.
	DateTime time.Time
	// Le libellé du message.
	Label string
	// L'ensemble de clé/valeur correspondant au contexte du message.
	Context []interface{}
}

Message représente un message de log. Une instance de ce type est créée à chaque fois qu'un log doit être effectué.

func (*Message) Msg

func (m *Message) Msg(label string)

Msg permet de définir le libellé du message. L'appel à cette fonction déclenche l'encodage et l'envoi vers la sortie.

func (*Message) Msgf

func (m *Message) Msgf(format string, args ...interface{})

Msgf permet de définir le libellé du message. Le message est créé via l'utilisation d'une chaine de formatagae et d'arguments. L'appel à cette fonction déclenche l'encodage et l'envoi vers la sortie.

func (*Message) Set

func (m *Message) Set(key string, value interface{}) *Message

Set permet d'ajouter un couple clé/valeur au contexte.

func (*Message) Setf

func (m *Message) Setf(key string, format string, args ...interface{}) *Message

Setf permet d'ajouter un couple clé/valeur au contexte. La valeur est créée via l'utilisation d'une chaine de formatage et d'arguments.

type Output

type Output interface {
	// Positionne le flag qui indique si la date et l'heure doivent être écrites.
	FlagDateTime(bool)
	// Est-ce que la date et l'heure doivent être écrites ?
	LogDateTime() bool
	// Positionne le flag qui indique si le niveau de log doit être écrit.
	FlagLevel(bool)
	// Est-ce que le niveau de log doit être écrit ?
	LogLevel() bool
	// Positionne le flag qui indique si un "\n" doit être ajouté à la fin du message.
	FlagNewLine(bool)
	// Est-ce qu'un "\n" doit être ajouté à la fin du message ?
	AddNewLine() bool
	// Cette fonction écrit les données du buffer résultant de l'encodage.
	Log(level Level, buf []byte) error
	// Cette fonction, si nécessaire, ferme la sortie.
	Close() error
}

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

var Stderr Output = newStderrOutput()

Stderr correspond à la sortie standard "stderr".

var Stdout Output = newStdoutOutput()

Stdout correspond à la sortie standard "stdout".

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(fDateTime bool, fLevel bool, fNewLine bool) *OutputProperties

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

func (*OutputProperties) AddNewLine

func (op *OutputProperties) AddNewLine() bool

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

func (*OutputProperties) FlagDateTime added in v0.1.1

func (op *OutputProperties) FlagDateTime(fDateTime bool)

FlagDateTime permet de positionner le flag qui indique si la date et l'heure doivent être écrites.

func (*OutputProperties) FlagLevel added in v0.1.1

func (op *OutputProperties) FlagLevel(fLevel bool)

FlagLevel permet de positionner le flag qui indique si le niveau de log doit être écrit.

func (*OutputProperties) FlagNewLine added in v0.1.1

func (op *OutputProperties) FlagNewLine(fNewLine bool)

FlagNewLine permet de positionner le flag qui indique si un "\n" doit être ajouté à la fin du message.

func (*OutputProperties) LogDateTime

func (op *OutputProperties) LogDateTime() bool

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

func (*OutputProperties) LogLevel

func (op *OutputProperties) LogLevel() bool

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

type StdEncoder

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

StdEncoder représente l'encodeur standard. Il encode au format "logfmt" le contexte du message.

func (*StdEncoder) Encode

func (e *StdEncoder) Encode(m *Message) ([]byte, error)

Encode encode le message de log.

type WriterOutput

type WriterOutput struct {
	io.Writer
	*OutputProperties
	// contains filtered or unexported fields
}

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

func NewWriterOutput

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

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

func (*WriterOutput) Log

func (o *WriterOutput) Log(level Level, buf []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