
Denis
27.08.2016
14:52:08
Сочувствую

Janek
27.08.2016
14:53:38
Может для них фонд организовать?

Stanislav
27.08.2016
14:54:17
Поясни

Google

⬗VLAD⌶K⬖
27.08.2016
14:55:13

Denis
27.08.2016
14:55:26

Janek
27.08.2016
14:55:59
Взламали

⬗VLAD⌶K⬖
27.08.2016
14:56:10
сам телефон. первый раз играю лол
такая подстава

Denis
27.08.2016
14:56:21
Уууу
Бывает
Умная штука

⬗VLAD⌶K⬖
27.08.2016
14:57:20
хорошо что не написал что я сейчас делаю?
первое что подумает среднестатистический русский
и те не менее страсть к этому делу передалась в мысль
нет, увы
странное самовыпиливание?

Google

Janek
27.08.2016
15:04:07
Чтоб не засирать чат
Потом зарт ругаться будет

⬗VLAD⌶K⬖
27.08.2016
15:06:04
не украинец, но рассказывать подноготную -увы
ни то ни другое

Zart
27.08.2016
15:10:59
это он стёр шоб никто не догадался шо он таки еврей

⬗VLAD⌶K⬖
27.08.2016
15:11:31
изя на проводе=)
жанек, это вроде польское что то

Zart
27.08.2016
15:15:24
аналог вани вроде

⬗VLAD⌶K⬖
27.08.2016
15:18:33
эх, пойду учить пожилых людей премудрости компутерной

Janek
27.08.2016
15:27:58
Ну Ян
Ну европейский вариант Ивана
Или Иван- русский вариант Яна

[Anonymous]
27.08.2016
15:32:09

Абу
27.08.2016
15:32:23
Ява

Stanislav
27.08.2016
15:35:02
Я в польски шарю
Янек
Хз аналог ли, слишком абстрактное сравнение

melancholiac
27.08.2016
15:54:45

Janek
27.08.2016
15:57:56

Google

Stanislav
27.08.2016
15:58:32

Janek
27.08.2016
15:58:45
Ну йопть
Сверхлюди

Pavel
27.08.2016
16:38:14

Dan
27.08.2016
16:41:18
אנחנו באים בשלום

Artyom
27.08.2016
16:46:20

Vladimir
27.08.2016
17:07:07
как починить эти ебучие логи, объясните мне?

Stanislav
27.08.2016
17:10:28

Vladimir
27.08.2016
17:11:06
http://dpaste.com/1C9R6ZR

Stanislav
27.08.2016
17:12:37
Увы, в логгере не шарю.
Читай howto для юникода

Vladimir
27.08.2016
17:14:02
я хочу чтобы те люди, которые мне говорили, что надо только въебать хендлер в главный логгер показали как это сделать

Vladimir
27.08.2016
17:14:12
на мой взгляд это сделать нельзя
@zartsoft пинг

Gra4
27.08.2016
17:15:17

Janek
27.08.2016
17:22:14

Pavel
27.08.2016
17:30:56
Это весь код?
Вызов test_logging() не проёбан?

Vladimir
27.08.2016
17:40:41
точно, зобыл

Google

Vladimir
27.08.2016
17:40:43
хм, роботает

Gra4
27.08.2016
17:44:01
:D

Admin
ERROR: S client not available

⬗VLAD⌶K⬖
27.08.2016
17:44:20
ох эти старички=0
хотя где то я себя чувствовал птицей высокого полета?

Janek
27.08.2016
17:46:23
Ничего не понял из твоего монолога. Слишком авангардно

⬗VLAD⌶K⬖
27.08.2016
17:46:54


Zart
27.08.2016
17:47:03
так...
логгинг
этот модуль определяет пачку классов, которые описывают типа деревообразную систему логгеров и привязанных к ним хендлеров
приложениям достаточно получить логгер от модуля и он тут же готов к отправке произвольной херни в него
т.е.
log = logging.getLogger('some.name.here')
log.info('hello!')
log.debug('someobject: %r', obj)
try:
0 / 0
except DivisionByZero:
log.exception('failed') # эта функция сохраняет трейсбак автоматически, остальные версии тоже это умеют
сам модуль хранит список хендлеров, и возвращает уже существующие, либо создает на лету свежий
отсюда важное замечение - по возможности стоит избегать динамического имени логгеров, если это может привести к их огромному количеству
когда приложение пишет в логгер одной из функций выше - происходит цепочка событий
сперва логгер проверяет уровени себя и сообщения, и если если он недостаточен, то сообщение херится сразу же.
т.е. управляя уровнем логгера на лету можно включать/выключать логгинг нужного канала


Vladimir
27.08.2016
17:54:09
я понял
с логгером всё ок
он юникод нормально логирует из коробки

Zart
27.08.2016
17:54:34
далее аргументы оборачиваются в LogRecord, который хранит сообщение, его аргументы, адрес вызова, екстра данные и трейсбак

Vladimir
27.08.2016
17:54:41
это из телеги мне прилетает такая жесть

Google

Vladimir
27.08.2016
17:54:46
ща разберусь как её декодить

Zart
27.08.2016
17:55:08
далее идёт адаптация/фильтрация, но я это пропущу, так как довольно эзотерическая в хозяйстве штука
после этого идёт поиск хендлеров
для этого имя канала разбивается точками и начинается поиск вверх по "дереву", пока не доберемся либо до корня, либо до узла помеченного как "не пропускать ивенты выше"
на каждом узле берется список хендлеров и они вызываются с этим вот логрекордом


Vladimir
27.08.2016
17:57:27
HTTP/1.1 200 OK
Server: nginx/1.10.0
Date: Sat, 27 Aug 2016 17:57:04 GMT
Content-Type: application/json
Content-Length: 271
Connection: keep-alive
Access-Control-Allow-Origin: *
Access-Control-Allow-Methods: GET, POST, OPTIONS
Access-Control-Expose-Headers: Content-Length,Content-Type,Date,Server,Connection
Strict-Transport-Security: max-age=31536000; includeSubdomains
{"ok":true,"result":{"message_id":14,"from":{"id":146501148,"first_name":"ru_travel","username":"rutravel_bot"},"chat":{"id":-1001089270325,"title":"ru.academy","username":"ru_academy","type":"supergroup"},"date":1472320624,"text":"\u043f\u0440\u0438\u0432\u0435\u0442"}}
это вообще легально?

Zart
27.08.2016
17:57:45
из этого следует простое правило: проще всего хендлер прицепить в корень чтобы ловило всё подряд, либо в нужную точку чтобы ловило лишь подсистему
другой вывод - имена должны образовывать иерархию, удобную для журналов

Stanislav
27.08.2016
17:57:46
|script.py
|under/
|----second-script.py
Как из second-script.py достучатся до script.py как к модулю?
Парсер модулей увидит script.py из second-script?

Zart
27.08.2016
17:58:03

Vladimir
27.08.2016
17:58:10
а что за кодировка?
Эта группа больше не существует