使用Python进行异步日志记录

时间:2020-07-19 15:07:31

标签: python logging

我需要以异步方式登录。但是我遇到一个错误。如何解决此错误。


RuntimeWarning:从未等待协程'asy_log'

asy_log(“警告消息”,“ Errorsource1”,“警告”)

RuntimeWarning:启用tracemalloc以获取对象分配跟踪

代码:-

import asyncio
import logging
import sys

logger = logging.getLogger("asyncio")
logger.setLevel(logging.INFO)

formatter = logging.Formatter('%(asctime)s %(levelname)s %(message)s')

streamhandler = logging.StreamHandler(stream=sys.stdout)
streamhandler.setLevel(logging.INFO)
streamhandler.setFormatter(formatter)

logger.addHandler(streamhandler)

filehandler = logging.FileHandler('test3.log')
filehandler.setLevel(logging.INFO)
filehandler.setFormatter(formatter)

logger.addHandler(filehandler)

async def asy_log(self, logtext=None, logsource = None, logcriticality= None):
    
    loginfo = logsource + logtext
    await getattr(logger, logcriticality)(loginfo)

    loop = asyncio.get_event_loop()
    loop.run_until_complete(asy_log())
    loop.close()


asy_log("Warning message", "Errorsource1", 'warning')

1 个答案:

答案 0 :(得分:0)

尝试在代码中使用此行。

await asyncio.sleep(delay)

这会造成一些延迟,并帮助记录器更好地工作。