логика такая: в контексет есть логгер и у него свой буфер, пока не будет вызван например log.Err все логи пишутся в буфер - а после уже в указанные врайтер. если буфер переполняется - логи тоже скидываются в финальный врайтер.
тут именно речь про логирование цепочки действия целиком - поэтому логгер прокидывется через контекст
поэтому можно получать логи целиком от одног контекста если в них были ошибки
никто не мешает использовать подход который я предложил к slog, и никто не заставляет тянуть именно мою либу. можно просто скопировать код и использовать
компании сами убили найм, сами затюнили фильтры так что проходить их могут только волки, а потом удивляются.
да, возможно стоит упростить, думаю именно на обработке хвоста проирываюю чутка реализацие на расте
все, я же написал есть тесты и фузинг, прочтите статью , прежде чем комментировать
статья не детальный разбор алгоритма, а конкретной моей его реализации. я дал ссылки на обзор алгоритма. если хотите обсудить мою реализацию Велком
а почему вы считаете что я сделал штуку для всего на свете?
так у меня и есть мидлвере с таким подходом
логика такая: в контексет есть логгер и у него свой буфер, пока не будет вызван например log.Err все логи пишутся в буфер - а после уже в указанные врайтер. если буфер переполняется - логи тоже скидываются в финальный врайтер.
тут именно речь про логирование цепочки действия целиком - поэтому логгер прокидывется через контекст
поэтому можно получать логи целиком от одног контекста если в них были ошибки
никто не мешает использовать подход который я предложил к slog, и никто не заставляет тянуть именно мою либу. можно просто скопировать код и использовать
можно еще такое в статью добавить
анрол цикла
func sum_развернутый(slice []int) (sum int) {
var i int
for i = 0; i < len(slice)-6; i = i + 6 {
sum += slice[i+0]
sum += slice[i+1]
sum += slice[i+2]
sum += slice[i+3]
sum += slice[i+4]
sum += slice[i+5]
}
for ; i < len(slice); i = i + 1 {
sum += slice[i]
}
return sum
}