擅长:python、mysql、java
<p>您已经启动了两个线程,每个线程都有自己的SQLEngine属性对象,在各自的线程运行时执行该对象。如果您想在多个线程之间共享记录器,那么最好创建一个可以传递的logger对象。吉尔会处理剩下的。在</p>
<pre><code>import logging
from threading import Thread
class SQLEngine(object):
def __init__(self, DB_PATH):
ch = logging.StreamHandler()
ch.setLevel(logging.DEBUG)
formatter = logging.Formatter('%(asctime)s:%(thread)d - %(name)s - %(levelname)s - %(message)s')
ch.setFormatter(formatter)
self.logger = logging.getLogger('SQLLogger')
self.logger.setLevel(logging.DEBUG)
self.logger.addHandler(ch)
def execute(self,SQL,):
self.logger.debug(SQL)
print (SQL)
class DBWorker(Thread):
def __init__(self, name, logengine):
Thread.__init__(self)
self.name = name
self.logger = logengine
def run(self):
#db = SQLEngine('')
self.logger.execute('select 1,2')
if __name__ == '__main__':
logger = SQLEngine('')
DBWorker('thread 1', logger).start()
DBWorker('thread 2', logger).start()
</code></pre>
<p>这只是一个例子。正如@tomasz所提到的,您可以根据您的需求来处理这个logger对象</p>