Нууу… Открываешь терминал, tail -n <number_of_lines> /path/to/file.log
В питоне
Глазами
Ну я хочу сделать программу в консольном и интерфейсном виде. Что там и там я делаю например запрос на сервер через модуль и мне нужно отлаживать ошибки и мне не комфортно делать таким образом try: ...... except: return "Error ....." Мне лучше передать except: return False и также в except вызвать метод с модуля где например запишуться и сохраняться ошибки до закрытия самой программы
Мне как бы очень удобно при ошибки возвратить с метода False но перед этим куда-то записать ошибку для подальшого вывода
Так тебе принципиально нужно откладывать логгирование до завершения работы программы? Или можно сделать так: … except SomeException: logger.error("An error occurred blah blah…", exc_info=True) return False ?
А предварительно ты в мейн-треде вызвал basicConfig, указав файлхендлер
Что делает exc_info=true ?
Высрет в лог у тебя трейсбек, а конкретнее — то, что sys.exc_info() вернёт, ЕМНИП
Вот этом.
Там прикол не в этом. Если делать для интерфейса, используя kivy то там сразу же в самом исключении нужно описывать проблему и выводить её как Label по типу того
А, так речь шла о кивишном таки интерфейсе? Я думал, ты его просто для примера упомянул, а делаешь на QT каком-нибудь… И хочешь, чтоб лог писался и в файл, и в интерфейсе отображался, и в стрим в терминал? Ну теперь мне хоть относительно понятно, почему ты стремился так между компонентами объектами эксепшенов кидаться
+, мне для интерфейса kivy прижился, хотя знаю что нужно вскоре изучать QT
Зачем тебе киви?
И то и другое
Удали питон
Только тогда почему не создать логгер и добавить в него три (или сколько угодно вообще) хендлеров, в данном случае — StreamHandler, FileHandler и KivyCustomLogHandler?
Создать логгер и добавить в него три (или сколько угодно вообще) хендлеров, в твоём случае — StreamHandler, FileHandler и KivyCustomLogHandler.
Обсуждают сегодня