Я создаю программу с графическим интерфейсом, которая имеет несколько основных (GUI) модулей и 4 разных модуля QThread. Я хочу иметь возможность правильно регистрировать необработанные исключения и другую различную информацию, которую я указываю. Поэтому я решил использовать встроенный в Python модуль логирования.
Это то, что я настроил как:
logging.basicConfig(filename="ubc.log",
format='%(asctime)-6s: %(name)s - %(levelname)s - %(module)s - %(funcName)s - %(lineno)d - %(message)s',
level=logging.DEBUG)
В соответствии с этой конфигурацией, я хотел, чтобы модуль регистрации сообщал мне, в какой именно строке произошла ошибка / информация, в каком модуле, в какой функции она произошла и т. Д. когда я logging.info("text")
):
2011-12-22 16:06:02,072: root - INFO - logging - info - 1592 - Calling load blog names function, tabWidget index is 0
Излишне говорить, что большая часть этой информации мне не нужна. Номер строки определенно не 1592, имя функции не является информацией, и модуль не регистрируется.
Повторюсь, я хочу вот что: когда я говорю logging.info("log this")
, я хочу, чтобы это появилось в журнале:
2011-12-22 16:06:02,072: root - INFO - WorkerThread1.py - upload_function(self, email, param) - line number 131 - log this
Возможно ли что-то подобное, и если да, то как?
РЕДАКТИРОВАТЬ : По запросу я добавляю больше кода:
class UI(QMainWindow, ui_ui.Ui_MainWindow):
def __init__(self, parent=None):
super(BlogCreator, self).__init__(parent)
self.setupUi(self)
self.tabWidget.setCurrentIndex(0)
logging.info("Prda!")
logging.info("Prda!")
находится в строке 414 файла GUI.py. Как видите, это сообщение должно быть написано при каждом запуске программного обеспечения (это setupUi). И это написано, но вот что пишется:
2011-12-22 16:53:04,209: root - INFO - logging - info - 1592 - Prda!
EDIT # 2 При дальнейшем рассмотрении кажется, что именно PyInstaller каким-то образом все испортил. Запуск программного обеспечения напрямую через интерпретатор дает желаемые результаты; после того, как программа была скомпилирована в EXE-файл, происходит вышеупомянутое.