Как добавить хук в zap logger?

Я пытаюсь добавить хук с WithOptions, но ничего не печатается для перехвата некоторых событий журнала:

    logger.WithOptions(zap.Hooks(func(entry zapcore.Entry) error {
        fmt.Println("test hooks test hooks")
        return nil
    }))

person Viktor    schedule 12.11.2020    source источник
comment
Вы случайно не забыли defer logger.Sync()?   -  person Mihai Todor    schedule 12.11.2020


Ответы (1)


Из документации:

func (log *Logger) WithOptions(opts ...Option) *Logger

WithOptions клонирует текущий регистратор, применяет предоставленные параметры и возвращает результирующий регистратор. Безопасно использовать одновременно.

Обратите внимание, что он клонирует новый регистратор, а не модифицирует его. Итак, вы должны переназначить переменную регистратора (или определить новую переменную) следующим образом:

logger = logger.WithOptions(zap.Hooks(func(entry zapcore.Entry) error {
    fmt.Println("test hooks test hooks")
    return nil
}))
person wijayaerick    schedule 16.11.2020