如何在python中为多个模块实现日志记录

时间:2019-04-24 06:39:54

标签: python oop logging

环境摘要:

嗨,我有一个Python项目,我从存储系统中请求一些信息,并将其显示在屏幕上。

环境:

模块执行器 模块rest有一个RestThreePar类 模块存储箱具有一个类StorageBox 模块定位器具有Locater类

问题:

我想实现一个单独的模块/类,用于记录Hole项目,这需要将内容记录到4个不同的文件中(每个模块都有自己的日志文件)。当我分别为每个模块导入日志记录时,它的工作与预期的一样,但是每当我尝试制作一个单独的类并导入该类时(例如从logger导入Logger导入),都会出错(我不确定,但看起来它多次写了一行)在文件中。)

我不是开发人员,也不知道下一步该怎么做。

我尝试使用python文档,但没有成功。 https://docs.python.org/3.6/howto/logging-cookbook.html

import logging
import os

class Logger:
    def __init__(self, cls_name, file):
        self.cls_name = cls_name
        current_dir = os.getcwd()
        self.file = f'{current_dir}/logs/{file}'

    def log(self):
        logger = logging.getLogger(self.cls_name)
        logger.setLevel(logging.INFO)

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

        file_handler = logging.FileHandler(self.file)
        file_handler.setFormatter(formatter)
        logger.addHandler(file_handler)

        return logger

    def log_info(self, msg):
        logger = self.log()
        logger.info(msg)

    def log_exception(self, msg):
        logger = self.log()
        logger.exception(msg)


if __name__ == '__main__':
    pass

0 个答案:

没有答案