我正在大量使用Python线程,我的许多用例要求我在不同的记录器名称下记录单独的任务执行。
一个典型的代码示例如下:
def task(logger=logger):
global_logger.info('Task executing')
for item in [subtask(x) for x in range(100000)]:
# While debugging, one would generally prefer to see these
global_logger.debug('Task executed item {}'.format(item))
global_logger.info('Task done')
def thread_task(task_index, logger=logger):
task(logger=global_logger.getChild('main.task.{}'.format(task_index)))
def main():
pool = Pool(10)
for item in pool.map(thread_task, range(128))
pass
Python日志模块中是否有任何标准方法可以让我一次性设置所有线程的日志级别?
在代码中,我想做的是:
# For all threads
logger.getChild('main.task.0').setLevel('INFO')
logger.getChild('main.task.1').setLevel('INFO')
logger.getChild('main.task.2').setLevel('INFO')
我应该注意到,我知道可以在task_thread
内部设置级别。我的问题是想找出是否有更简单的方法来完成这个操作。
logging.getLogger('main.task.*.subtask_a').setLevel(logging.INFO)
logging.getLogger('main.task.*.subtask_b').setLevel(logging.DEBUG)
- Andrey Cizov