我有一个主python脚本,可以在我们实验室的分布式系统设置中自动配置节点。 我运行kickstart.py的多个实例,然后并行配置所有节点。如何创建日志处理程序,以便kickstart.py的每个实例分别并行配置每个节点,并且每个实例都登录到不同的日志文件。我想使用python日志模块。任何帮助表示赞赏。感谢
答案 0 :(得分:0)
logging
模块是线程安全的,非常容易使用。
阅读相关的documentation。
这是一个简单的例子:
import logging
import threading
import time
def worker(arg):
logger = logging.getLogger('simple_example')
while not arg['stop']:
logger.info('Hello from thread')
time.sleep(0.5)
def main():
logger = logging.getLogger('simple_example')
logger.setLevel(logging.DEBUG)
fh = logging.FileHandler('spam.log')
fh.setLevel(logging.INFO)
formatter = logging.Formatter('%(asctime)s - %(threadName)s - %(levelname)s - %(message)s')
fh.setFormatter(formatter)
logger.addHandler(fh)
thread = threading.Thread(target=worker, args=(info,))
thread.start()
for x in range(3):
logger.info('Hello from main')
time.sleep(0.75)
thread.join()
if __name__ == '__main__':
main()
哪个会给你:
2017-08-11 11:00:53,568 - simple_example - INFO - Hello from main
2017-08-11 11:00:53,568 - simple_example - INFO - Hello from thread
2017-08-11 11:00:54,069 - simple_example - INFO - Hello from thread
2017-08-11 11:00:54,318 - simple_example - INFO - Hello from main
2017-08-11 11:00:55,068 - simple_example - INFO - Hello from main