@proGO

Страница 1309 из 1674
Arch
23.03.2018
09:10:25
я думал про v6 пару лет назад, почитал, посмотрел что еще добрая половина железо-софта не умеют с ним работать и забил

Я вот только про маски не догнал, нафига на каждое устройство давать по /64?

Dmitry
23.03.2018
09:14:38
Чтобы https://www.ietf.org/rfc/rfc3972.txt

Marlik
23.03.2018
12:18:34
Люди подскажите, мне нужно померить в коде сколько времени проходит между событиями, как юзаете? Какой-нить таймстамп?

Google
Aleksandr
23.03.2018
12:20:12
start := time.Now() duration := time.Since(start)

Marlik
23.03.2018
12:24:51
Nick
23.03.2018
12:30:00
Ребят всем привет, сорри за оффтоп. Мы (Grinteq Belarus), ищем сениора GO разработчика с бекграундом C++ или Ruby. Работа ремоут или в Минске. Пишите в личку за деталями.

Nick
23.03.2018
12:33:33
https://t.me/golangjob
спасибо!

dimcha
23.03.2018
12:38:23
Подскажите плз, как нужно правильно организовать логгинг? Т.е. у меня есть приложение, оно использует какой-то логгер. Я хочу использовать инстанс логгера в своих либах, которые использует мое приложение. Но встает ограничение на повторное использование этих либ в дргих приложениях - они будут вынуждены использовать тот-же логгер. Как решается эта проблема? Может есть good-practice с интерфейсами или как-то иначе?

dimcha
23.03.2018
12:41:17
а что использовать?

Zver
23.03.2018
12:42:51
а что использовать?
Просто возвращайте ошибки, а логирует пусть само приложение.

dimcha
23.03.2018
12:43:03
а дебаг либы как делать?

да и просто есть вещи которые хочется залоггировать из либы

Dmitry
23.03.2018
12:43:47
Ну просто в либе указываете нужный интерфейс, а логгер пусть внешнее приложение свой прокидывает

Zver
23.03.2018
12:43:56
На основании возвращаемых ошибок делайте дебаг.

Google
Dmitry
23.03.2018
12:44:14
Если не указан логгер - просто создаете заглушку NilLogger внутри и пишете логи в никуда

dimcha
23.03.2018
12:45:38
с интерфейсами я и сам догадался, но хочется что-то более универсально, типа GelLogger(..) из либы из любого места и использовать если он определен

Если не указан логгер - просто создаете заглушку NilLogger внутри и пишете логи в никуда
вот это более похоже на то что нужно, а есть какое-то законченное решение? или пример правильного использования?

Zver
23.03.2018
12:46:31
Но все же для либ по мне просто возвращать ошибки, в крайних случаях паника. Без всяких логеров. Это уже прерогатива приложения.

dimcha
23.03.2018
12:46:35
неуж-то каждый сам велосипедит?

Dmitry
23.03.2018
12:47:00
Да там решение на пару строк, зачем городить огород?

dimcha
23.03.2018
12:47:23
Zver
23.03.2018
12:47:24
неуж-то каждый сам велосипедит?
Просто в библиотеках, не используют логеры, обычно.

Dmitry
23.03.2018
12:47:33
Интерфейс логгера, NilLogger, IF проверяющий, что передали не nil

Igor
23.03.2018
12:48:14
fmt.Println внутривенно тебе, брат

Dmitry
23.03.2018
12:48:18
Не слушайте никого про "библиотеки и отсутствие логгеров" - у каждого свой случай и иногда либы бывают большими и внутри многое происходит, да и дебажить проще

dimcha
23.03.2018
12:48:53
Интерфейс логгера, NilLogger, IF проверяющий, что передали не nil
а есть какое-то решение с глобальным GetLogger?

чтоб совсем прозрачно

Dmitry
23.03.2018
12:49:22
Глобавльный логгер не нужен

Синглтоны - зло :)

dimcha
23.03.2018
12:50:54
не хочется его в параметрах функциям передавать. Хочется магии

Zver
23.03.2018
12:51:30
не хочется его в параметрах функциям передавать. Хочется магии
Тогда просто возвращайте грамотные ошибки.

dimcha
23.03.2018
12:51:51
Google
Dmitry
23.03.2018
12:52:11
Ну передавайте в конструкторе тогда

И храните указатель на него

Mike
23.03.2018
12:52:36
А в чем проблема сделать глобально? Гошка позволяет такие извращения

dimcha
23.03.2018
12:52:39
ну, выходит только так, через конструктор.

Zver
23.03.2018
12:52:42
это не мой вариант.
Это вам кажется. Даже в крупных библиотеках не используют логеры.

Igor
23.03.2018
12:53:12
log.Printf тебе внутривенно

dimcha
23.03.2018
12:53:59
всем спасибо за идеи. Жаль что единого стайла нет

Zver
23.03.2018
12:54:12
А потом понипишут кучу библиотек с логерами и привинчивай к каждой либе логгер, при том еще и оборачивать во что-то придется.

Mike
23.03.2018
12:54:48
Единый интерфейс для логов решил бы эту проблему.

dimcha
23.03.2018
12:55:21
странно, что этот момент не продумали в стдлибе изначально. В питоне есть отличный модуль logging и никто там не велосипедит уже со 2 версии питона. А тут отдали на откуп авторам приложений...

Mike
23.03.2018
12:56:10
го_не_для_компутер_сайентистов.jpg

Zver
23.03.2018
13:05:33
Тогда используете стандартный логгер. Кому надо тот установит куда выводить. И делать по умолчанию отключенным логирование.

dimcha
23.03.2018
13:08:43
увы, он некрасивый )

Zver
23.03.2018
13:09:03
увы, он некрасивый )
В смысле не красивый?

dimcha
23.03.2018
13:09:39
всмысле чтобы он нормальный формат поддерживал и цвета, его надо своим кодом обмазать чуть менее чем полностью

Alexey
23.03.2018
13:25:36
Надо чтоб в XML выхлоп был

dimcha
23.03.2018
13:27:28
Коллега, вы с ума сошли?!
totally, неужели еще непонятно?

Google
Daniel
23.03.2018
13:27:49
Ну, были сомнения

Mike
23.03.2018
13:27:58
Коллега, вы с ума сошли?!
Ему видимо на логи смотреть, а не грепать. Но даже для грепа встроенный логгер убог

Daniel
23.03.2018
13:28:13
Встроенный да

dimcha
23.03.2018
13:29:39
да, смотреть глазами. Но и грепать тоже. Вот пример того что нужно мне: [D 19:14:08] http-api-server.go:107 handlerCreateBuild() invoked from 127.0.0.1:57164 [I 19:14:08] http-api-server.go:134 build 7741e8003ff5534c61c22453fc859ae2 (ew-config-server-1.16-2) added [I 19:14:08] pool-build.go:19 worker 1: processing ew-config-server-1.16-2 [D 19:14:08] manifestjob.go:78 unmarshal manifest [D 19:14:08] manifestjob.go:86 create log files for current job [D 19:14:08] manifestjob.go:100 create loggers for std(err|out)

и в цвете, если вывод на консоль

Admin
ERROR: S client not available

dimcha
23.03.2018
13:30:15
увы встроенный этого из коробки дать не может

Daniel
23.03.2018
13:37:48
structlog я вам рекоммендую

dimcha
23.03.2018
13:41:21
дык их легион таких, но мне нужен human readable в первую очередь. Для машин я могу и в protobuf отгружать, минуя стадию записи в файл.

Daniel
23.03.2018
13:41:43
я понял, и выдал рекоммендацию

dimcha
23.03.2018
13:42:03
спасибо, но разговор был немного не об этом.

Daniel
23.03.2018
13:42:18
об этом

dimcha
23.03.2018
13:42:29
я расчитывал получить good practice, а их нет. Тут кто во что горазд

Daniel
23.03.2018
13:42:37
из всех логгеров именно структлог наиболее читабельный выхлоп дает. ну - на мой взгляд

dimcha
23.03.2018
13:42:41
и у каждого свой велосипед

из всех логгеров именно структлог наиболее читабельный выхлоп дает. ну - на мой взгляд
но не через format. оно log only key/value pairs. Это обоснованно при наличии ураганного логгинга, когда надо ускорить его до максимума. А в случае простого лога это будет так себе решение...

tsov
23.03.2018
14:01:36
Google
dimcha
23.03.2018
14:28:41
log.Err("message to log", "error to log and return", err) какую строку в лог запишет?

и как будет выглядеть аналог ctx.log.I("container %s (image:%s) created", containerRequest.Name, fingerprint)

?

Arch
23.03.2018
14:35:07
А говорили, что плохо логгеры через контекст передавать

Мол не по прославному это

dimcha
23.03.2018
14:39:43
Судьба конечно, но я же спрашиваю человека, который им пользуется постоянно и сможет мне нехило время сэкономить...

Daniel
23.03.2018
14:39:43
но там есть https://godoc.org/github.com/powerman/structlog#Logger.Printf, для тех, кому проверять трудно

dimcha
23.03.2018
14:40:12
Мол не по прославному это
это кастомный контекст, не тот что context

но там есть https://godoc.org/github.com/powerman/structlog#Logger.Printf, для тех, кому проверять трудно
да я вообще не хочу его ставить для проверки. У меня есть чем заняться. Этих логгеров тьма и каждый проверять - недели не хватит. Я глянул код, увидет что оно не использует форматирование и спросил каков будет вывод и как этим пользоваться в конкретном случае. По-моему для этого тематические чатики и созданы

rtfm я и сам могу

Daniel
23.03.2018
14:43:52
выглядеть это будет примерно так, как ты попросил

без времени, правда

потому как время - это опязанность сборщика логов, а не писателя

dimcha
23.03.2018
14:46:28
у него есть в формате отображение времени и имени файла, с этим норм. Но меня интересует больше сколько кода придется изменить и как удобно будет его использовать, в отличие от привычного Printf

а так-же аппендеры. Можно-ли одновременно писать в файл, консоль и в сеть через кастомный аппендер

Страница 1309 из 1674