
Dmitry
30.03.2018
18:34:49
А кто тут кроме меня на Питоне пишет? Просто я с логингом там повозился не плохо и у меня опять осталось чувство, что в том же Ди оно проще сделано.
Мне просто интересно это у меня субъективно все или нет?

Pavel
30.03.2018
18:35:25
А ты делал уже логгинг в Д?

Dmitry
30.03.2018
18:35:46
да

Denis
30.03.2018
18:36:01

Google

Dmitry
30.03.2018
18:36:11
Не интерпрайз уровень, но для приложений средней руки. На работе то там всякие лог-стеши и тд

Pavel
30.03.2018
18:36:22
В какое хранилище логировал?

Dmitry
30.03.2018
18:37:12
Логстеш который к Эластику подвязан, но пока мы только начинаем это использовать. Поэтому неделя ушла на согласования и попытки разобраться как лучше делать

Pavel
30.03.2018
18:37:41
Не, ты именно на Д логировал в логстеш?

Dmitry
30.03.2018
18:38:27
нет, но на Ди проблем не вижу чем это сложнее — просто отправлял бы через request сообщение лога и все

Pavel
30.03.2018
18:40:52
Так в ди нет логирования)

Dmitry
30.03.2018
18:41:03
вот же https://dlang.org/phobos/std_experimental_logger.html

Pavel
30.03.2018
18:41:18
Если ты про logWarn() то это просто смищно

Dmitry
30.03.2018
18:42:05
поясни плиз

Pavel
30.03.2018
18:43:09
Я хочу все уровни логировать в файл, для компонентов A B C убрать уровень Trace, а компоненты D E F логировать еще на почту все что выше уровня warning. Как это сделать?

Dmitry
30.03.2018
18:43:48
Ну тут да, согласен

Pavel
30.03.2018
18:44:50
Ну вот и ответ. Смысл логгера не только в том чтобы писать строчку цветную в консоль с 5 уровнями доступа

Google

Pavel
30.03.2018
18:45:24
А еще по хорошему уметь показывать стектрейс у ошибок

Evgeny
30.03.2018
18:45:29

Pavel
30.03.2018
18:46:28
свои бэкенды написать?
Вот именно что написать. А monolog какой-нибудь уже имеет готовый роутинг и слоты и к нему есть куча готовых бэкендов

Pavel
30.03.2018
18:46:40
Мне кажется, логер должен быть максимально простым чтобы не зависеть от работоспособности логируемого. Всё что сверх разруливать системой.

Evgeny
30.03.2018
18:47:54

Pavel
30.03.2018
18:49:06
Ну да, но и нечего его сравнивать с развитыми логгерами в других языках

Pavel
30.03.2018
18:49:25
У меня есть некоторый опыт работы с логированием во втором питоне и никакого с Ди. Если что.

Evgeny
30.03.2018
18:50:10

Pavel
30.03.2018
18:53:03
Из мне известных ни в каком. Но там есть целые логирующие фреймворки.

Evgeny
30.03.2018
18:58:57
А так я почти всегда пишу свои велосипеды
Я вот не знаю в дешном логгере можно метаданные какие-нибудь к логу прицепить?
Тэги например, чтобы потом было легче найти нужный лог.

Pavel
30.03.2018
19:00:55
Ну вот кстати даже если открыть мануал https://docs.python.org/3/library/logging.html то там видно что в питоне есть еще какие-то хендлеры, чайлды, форматтеры и свистелки с перделками

Evgeny
30.03.2018
19:02:27
понавороченнее

Igor
30.03.2018
19:59:46
да, в питоне достаточно навороченно. правда у меня никогда никаких суперзапросов нет, но всё что нужно - делает - именно разные форматтеры, разные файлы (с вращением в том числе, правда не без глюков)

Pavel
30.03.2018
20:00:33
У меня почти сразу появился суперзапрос отделить логи вайба от логов моего приложения. И вот так сделать нельзя. А сейчас он срет все в одну кучу и потом сиди разбирайся.
Там можно добавить логгеров в стек логгеров, но проблема в том что абсолютно все сообщения будут валиться во все логгеры, сделать как-то выборочно нельзя. И кстати цветной лог вайба намного круче чем убогий experimental.log

Igor
30.03.2018
20:01:33
возможно. в D у меня с логгингом потребности еще скромнее чем в питоне

Pavel
30.03.2018
20:03:36
И еще, вот эти уровни видимости trace, info, warning, critical, fatal - абсолютно неадекватны в реальной жизни. Не знаю кому может прийти в голову скрывать critical и fatal ошибки, это никогда не нужно. А вот иметь много уровней отладочного логирования как в вайбе - trace, dbgV, dbg, info - это очень удобно.

Google

Oleg
30.03.2018
20:05:56
Как-то давно делал логирование https://github.com/dexset/deslog
Можно было отдельно выбирать модули

Pavel
30.03.2018
20:13:01
Круто, может имеет смысл на основе вайба сделать?

Oleg
30.03.2018
20:14:16
Возможно имеет смысл переработать
Насколько я помню там можно разные было приемники лога делать

Pavel
30.03.2018
20:17:22
Да, но по факту с ними особо ничего не сделаешь, все валится везде без каких-либо фильтров

Oleg
30.03.2018
20:18:04
Vibe как backend приделать, если надо

Evgeny
31.03.2018
05:58:18
и вайбовским логам просто присваивается отдельный тэг
я отключил вайбовский консольный логгер и написал свой бэкенд, который перенаправляет вайбовские логи в мой цветастый велосипед.

Denis
01.04.2018
09:06:39
http://diamondmvc.org/

Igor
01.04.2018
09:18:47
кто-нибудь может обьяснить почему тут exception передаётся через вариант и срабатывает? https://run.dlang.io/is/7LtxIP

Denis
01.04.2018
09:21:12
11 строка как ругается?

Igor
01.04.2018
09:24:42
/std/concurrency.d(595): Error: static assert: "Aliases to mutable thread-local data not allowed."
что в общем логично

Denis
01.04.2018
09:25:15
Ок а что ты называешь "срабатывает"?
а, вижу

Igor
01.04.2018
09:25:37
в receive срабатывает ветка с Exception
хотя передан вариант

Google

Igor
01.04.2018
09:27:00
возможно, код receive смотрит не просто на тип данных, но еще и на то, какой вариант пришел и если там был throwable то его и использует

Denis
01.04.2018
09:28:08
В Variant никаких alias payload this; нету?
чсмотрю в нём перегрузок всего-всего полно

Igor
01.04.2018
09:28:52
не знаю… буду смотреть по коду где именно эта магия срабатывает

Denis
01.04.2018
09:30:25
скорее всего к Variant можно обращаться просто как к его содержимому
и именно это и происходит при вызове первого делегата

Igor
01.04.2018
09:47:13
а куда деваются все те части exception которые не позволяли передать его просто в send?

Denis
01.04.2018
09:49:18
тип не позволял же между тредами его передать
а variant это наверно специальная обёртка которая позволяет
(хотя тут я не уверен)

Admin
ERROR: S client not available

Igor
01.04.2018
09:50:23
ну вариант тоже передаётся между тредами.
по поводу “и именно это и происходит при вызове первого делегата” - скорее всего. receive пытается проверить можно ли привести типы. и если да - приводит и вызывает делегат

Denis
01.04.2018
09:55:04

Stanislav
01.04.2018
10:17:10
11: owner.send(cast(shared Exception)e);
16: (shared Exception e)
так работает )
ну или как shared(Exception) делать
без каста
так наверное даже правильней
или вопрос был в другом и я не понял как всегда? ?

Igor
01.04.2018
10:45:42
Ну приблизительно в том как receive отличает при матчинге просто variant от варианта в котором упакован exception

Google

Igor
01.04.2018
10:46:26
Спасибо, попробую разные варианты

Dmitry
01.04.2018
11:19:34
Раст все. Их канал переименовали в канал про Го. :)

Pavel
01.04.2018
11:28:51
Плюсы перепрофилировались на паскаль.

Maxim
01.04.2018
11:32:28
Нам надо в cobol переименоваться

Evgeny
01.04.2018
13:49:00

Dark
01.04.2018
14:27:54
А в V8 нет VM?
Или это снова наеб как с ES Next в прошлом году?

Dmitry
01.04.2018
14:58:29
1 апреля же

Dark
01.04.2018
15:06:46
Я конечно все понимаю
Но технические шутки не понимаю
На первое апреля
Это все равно, что сказать что в одном байте 9 бит

Evgeny
01.04.2018
15:34:26
Ну это не техническая шутка.
Это маловероятное, но все же вероятное событие

Денис
01.04.2018
17:02:05
https://habrahabr.ru/post/352570/
Видели?
Ммм, сейчас бы из плюсов раст сделать. Ну не сейчас а к 23 году.

Evgeny
01.04.2018
17:19:46

Dark
01.04.2018
17:26:57

Evgeny
01.04.2018
17:28:28
готовились заранее :)

Dark
01.04.2018
17:30:51
Пойду крышки собирать к следущему первому апреля
Точно объявят о начале фоллаута

Evgeny
01.04.2018
17:39:48