README ¶
Pydio LOG
Pydio relies on zap logging framework.
We mainly use 2 loggers that are defined in this package and used throughout the backend:
- A syslog logger: it should be used to log technical information.
- An audit logger: it only logs some very precise information at strategic places and is used to monitor the Application from a business point of view. Audit logs are among others used for GRDP compliance.
WARNING: you should not modify nor remove any of the audit log.
Guidelines
- When enriching the log with zap fields, always use constants from
common/zapfields.go
as keys, otherwise the logs won't be usable for analysis - Pydio provides some shortcuts to easily generate zap fields for commons pydio objects. Typically when loging info about a tree.Node, one should write:
...Debug("A message", node.Zap())
- Depending on the level of details required, one can either use
Zap()
that serializes all accessible information orZapPath()
,ZapUuid()
orZapId()
(depending on the relevant info) that simply calls zap.String() with relevant pydio zap id (as seen in common/zapfields.go) and corresponding value.
Conventions
- it is idiomatic in Go to write error message that start with a lower case letter and do not end with a punctuation mark.
Documentation ¶
Overview ¶
Package log define and configure the Pydio loggers based on zap.
We mainly use 2 loggers that are defined in this package and used throughout the backend: - A syslog logger: it should be used to log technical information. - An audit logger: it only logs some very precise information at strategic places and is used to monitor the Application from a business point of view. Audit logs are among others used for GRDP compliance.
WARNING: you should not modify nor remove any of the audit log.
Index ¶
- Variables
- func Auditer(ctx context.Context) *zap.Logger
- func Debug(msg string, fields ...zapcore.Field)
- func Error(msg string, fields ...zapcore.Field)
- func Fatal(msg string, fields ...zapcore.Field)
- func GetAuditId(msgId string) zapcore.Field
- func Info(msg string, fields ...zapcore.Field)
- func Init()
- func Logger(ctx context.Context) *zap.Logger
- func RFC3369TimeEncoder(t time.Time, enc zapcore.PrimitiveArrayEncoder)
- func RegisterWriteSyncer(syncer WriteSyncer)
- func SetAuditerInit(f func() *zap.Logger)
- func SetLoggerInit(f func() *zap.Logger)
- func SetTasksLoggerInit(f func() *zap.Logger)
- func TasksLogger(ctx context.Context) *zap.Logger
- func Warn(msg string, fields ...zapcore.Field)
- type LogSyncer
- type WriteSyncer
Constants ¶
This section is empty.
Variables ¶
var (
StdOut *os.File
)
Functions ¶
func GetAuditId ¶
GetAuditId simply returns a zap field that contains this message id to ease audit log analysis.
func RFC3369TimeEncoder ¶
func RFC3369TimeEncoder(t time.Time, enc zapcore.PrimitiveArrayEncoder)
RFC3369TimeEncoder serializes a time.Time to an RFC3339-formatted string
func RegisterWriteSyncer ¶
func RegisterWriteSyncer(syncer WriteSyncer)
RegisterWriteSyncer optional writers for logs
func SetAuditerInit ¶
SetAuditerInit defines what function to use to init the auditer
func SetLoggerInit ¶
SetLoggerInit defines what function to use to init the logger
func SetTasksLoggerInit ¶
SetTasksLoggerInit defines what function to use to init the tasks logger
func TasksLogger ¶ added in v1.4.0
TasksLogger returns a zap logger with as much context as possible.
Types ¶
type WriteSyncer ¶
WriteSyncer implements zapcore.WriteSyncer