[2] | 1 | import time |
---|
| 2 | import inspect |
---|
| 3 | import os |
---|
| 4 | |
---|
| 5 | from galaxy.model.orm import * |
---|
| 6 | |
---|
| 7 | import logging |
---|
| 8 | |
---|
| 9 | log = logging.getLogger( __name__ ) |
---|
| 10 | |
---|
| 11 | wd = os.getcwd() |
---|
| 12 | def stripwd( s ): |
---|
| 13 | if s.startswith( wd ): |
---|
| 14 | return s[len(wd):] |
---|
| 15 | return s |
---|
| 16 | |
---|
| 17 | def pretty_stack(): |
---|
| 18 | rval = [] |
---|
| 19 | for frame, fname, line, funcname, _, _ in inspect.stack()[2:]: |
---|
| 20 | rval.append( "%s:%s@%d" % ( stripwd( fname ), funcname, line ) ) |
---|
| 21 | return " > ".join( rval ) |
---|
| 22 | |
---|
| 23 | class LoggingProxy(ConnectionProxy): |
---|
| 24 | def cursor_execute(self, execute, cursor, statement, parameters, context, executemany): |
---|
| 25 | start = time.clock() |
---|
| 26 | rval = execute(cursor, statement, parameters, context) |
---|
| 27 | duration = time.clock() - start |
---|
| 28 | log.debug( "statement: %r parameters: %r executemany: %r duration: %r stack: %r", |
---|
| 29 | statement, parameters, executemany, duration, pretty_stack() ) |
---|
| 30 | return rval |
---|