Данные журнала io.Writer

Я хотел бы создать метод, который использует o.Writerand wraps acipher.StreamWriter для шифрования записи. По причинам отладки я хотел бы распечатать, какие данные передаются писателю. Как мне этого добиться?

Криптокод — это просто заполнитель, поэтому фиксированный ключ, iv и т. д. предназначены только для проверки.

func NewEncryptionWriter(w io.Writer) io.WriteCloser {
    key, _ := hex.DecodeString("6368616e676520746869732070617373")
    c, _ := aes.NewCipher(key)
    iv := make([]byte, aes.BlockSize)
    return &cipher.StreamWriter{S: cipher.NewOFB(c, iv), W: w}
}

person Florian    schedule 26.06.2018    source источник
comment
Я думаю, вам понадобится еще одна оболочка, которая реализует io.WriterCloser, распечатывает данные и делегирует остальное обернутому писателю.   -  person bereal    schedule 26.06.2018
comment
Возможные дубликаты, запись в несколько io.Writers: stackoverflow.com/questions/36719525/, stackoverflow.com/questions/45351208/, stackoverflow.com/questions/48326997/,   -  person JimB    schedule 26.06.2018
comment
@JimB, ты абсолютно прав, раньше их не находил.   -  person Florian    schedule 26.06.2018


Ответы (1)


Вы можете взглянуть на MultiWriter из пакета io: он создает модуль записи, который дублирует он пишет во все предоставленные модули записи, подобно команде Unix tee(1).

person Alexander Davydov    schedule 26.06.2018