Re: Log Stacktrace of current Python Interpreter via PostgreSQLtrigger
От | Thomas Güttler |
---|---|
Тема | Re: Log Stacktrace of current Python Interpreter via PostgreSQLtrigger |
Дата | |
Msg-id | 2356ac85-773c-7aef-48b6-6f1f0ad4b1d4@thomas-guettler.de обсуждение исходный текст |
Ответ на | Re: Log Stacktrace of current Python Interpreter via PostgreSQL trigger (Daniele Varrazzo <daniele.varrazzo@gmail.com>) |
Ответы |
Re: Log Stacktrace of current Python Interpreter via PostgreSQLtrigger
|
Список | psycopg |
Am 20.05.19 um 12:19 schrieb Daniele Varrazzo: > If you use postgres logging in stored procedures you can retrieve the logs in 'connection.notices'. > > http://initd.org/psycopg/docs/connection.html#connection.notices This sound great. Unfortunately I can't extract the whole stacktrace. I only get the lines below psycopg, not the above (lines of the callers). Here is my code: class MyAppConfig(AppConfig): def ready(self): connection_created.connect(connection_created_check_for_notice_in_connection) class ConnectionNoticeList(object): def append(self, message): if not 'some_magic_of_db_trigger' in message: return logger.warn('%s %s' % (message, ''.join(traceback.format_stack()))) def connection_created_check_for_notice_in_connection(sender, connection, **kwargs): connection.connection.notices=ConnectionNoticeList() I see this in the logs: 'NOTICE: some_magic_of_db_trigger: 17909 File "/snap/pycharm-community/128/helpers/pycharm/_jb_pytest_runner....ork/foo/apps.py", line 47, in append logger.warn(\'%s %s\' % (message, \'\'.join(traceback.format_stack()))) ' traceback.format_stack() inside ConnectionNoticeList.append() extracts not the callers. Is there a way to get the callers lines? -- Thomas Guettler http://www.thomas-guettler.de/ I am looking for feedback: https://github.com/guettli/programming-guidelines
В списке psycopg по дате отправления: