Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

Hooks

Hooks let you run code at specific points in the log write lifecycle. Register them with AddHook and a HookPoint.

Hook Points

PointWhen
HookBeforeWriteJust before each log line is written
HookAfterWriteJust after each log line is written

Usage

// Clear a spinner line before log output
clog.AddHook(clog.HookBeforeWrite, func() {
    fmt.Print("\r\033[K")
})

// Restore a prompt after log output
clog.AddHook(clog.HookAfterWrite, func() {
    fmt.Print(">>> ")
})

Multiple hooks per point run in registration order.

Clearing Hooks

clog.ClearHooks(clog.HookBeforeWrite) // clear one point
clog.ClearAllHooks()                  // clear all points

Notes

  • Hooks are called under the logger’s mutex - they must not call back into the same logger.
  • Hooks fire for all log levels and for both the built-in formatter and custom handlers.
  • Sub-loggers inherit parent hooks.
  • Per-logger methods: logger.AddHook(point, fn), logger.ClearHooks(point), logger.ClearAllHooks().