例如,我有這個文件與我想使用類(唯纔是舉,也許不工作)如何爲每個線程創建自己的日誌記錄實例?
# helper_one.py
import logging
logger = logging.getLogger('HelperOne')
class HelperOne:
def __init__(self, data):
self.data = data
def run(self):
logger.debug('HelperOne::Run function with data: ' + self.data)
return True
。
# controller_one.py
import logging
from helper_one import HelperOne
logger = logging.getLogger('ControllerOne')
class ControllerOne:
def __init__(self, data):
self.data = data
def run(self):
logger.debug('ControllerOne::Run function with data: ' + self.data)
ho = HelperOne(self.data + '_data')
return ho.run()
,我有誰創建線程
import logging
from controller_one import ControllerOne
# this function create thread (its just example)
def run_task(task_id, data):
logging.basicConfig(
filename=os.path.join('logs', str(task_id) + '.log'),
level=logging.DEBUG,
format='%(asctime)s\t%(name)s\t%(levelname)s\t%(message)s'
)
result = ControllerOne(data)
logging.debug('run_task: ' + result)
如果我創建日誌例如像例子中的文件,所有日誌在一個文件中寫入。 我怎麼可以爲每個線程創建自己的日誌記錄實例與日誌記錄到自己的文件?
問候,亞歷克斯。
我在python中不是很好,但是如果記錄器只能靜態地設置(即每個進程有1個實例),那麼就嘗試使用單獨的子進程而不是線程。 – Kam 2014-09-28 20:26:19
@Kam,是的,我可以做到,但在我的情況下,這是不可能的。 – 2014-09-28 20:58:36