日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 >

python一个类调用另一个类的方法_python 类静态方法实例化另一个类对象的问题?...

發布時間:2025/10/17 42 豆豆
生活随笔 收集整理的這篇文章主要介紹了 python一个类调用另一个类的方法_python 类静态方法实例化另一个类对象的问题?... 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

Logger是使用logging封裝的一個日志類, 每次使用的時候都要實例化一下:

logger = Logger().getLogger()

logger.info(' message ')

不想每次實例化, 然后新加了一個類Logg 里面定義了對應各個日志級別的靜態方法:

但是測試一下卻輸出了很多日志, 為什么呢?

import time

from weather.common.libs.logger import Logger

class Logg(object):

@staticmethod

def info(message):

print("info---------------")

log = Logger().getLogger()

log.info(message)

if __name__ == '__main__':

for i in range(3):

Logg.info('testing..')

time.sleep(1)

輸出結果::::

info---------------

[2019-09-18 17:17:58,679][root][INFO]-logg.py-info:line:14 testing..

info---------------

[2019-09-18 17:17:59,679][root][INFO]-logg.py-info:line:14 testing..

[2019-09-18 17:17:59,679][root][INFO]-logg.py-info:line:14 testing..

info---------------

[2019-09-18 17:18:00,681][root][INFO]-logg.py-info:line:14 testing..

[2019-09-18 17:18:00,681][root][INFO]-logg.py-info:line:14 testing..

[2019-09-18 17:18:00,681][root][INFO]-logg.py-info:line:14 testing..

附加 Logger 類代碼:

class Logger(object):

level_relations = {

'debug': logging.DEBUG,

'info': logging.INFO,

'warning': logging.WARNING,

'error': logging.ERROR,

'crit': logging.CRITICAL

} # 日志級別關系映射

def __init__(self, logger=None, level='info'):

# create logger

self.logger = logging.getLogger(logger)

self.logger.setLevel(self.level_relations.get(level))

# 創建一個handler,用于寫入日志文件

self._log_time = time.strftime("%Y_%m_%d")

self._log_path = os.path.dirname(os.path.dirname(os.getcwd())) + os.sep + 'log' + os.sep + self._log_time

# check log file path

if not os.path.exists(self._log_path):

os.makedirs(self._log_path)

self._log_name = self._log_path + os.sep + 'log.log'

formatter = logging.Formatter('[%(asctime)s][%(name)s][%(levelname)s]-%(filename)s-%(funcName)s:line:%(lineno)d\t%(message)s')

fh = logging.FileHandler(self._log_name, 'a', encoding='utf-8')

# fh.setLevel(logging.INFO)

fh.setFormatter(formatter)

# 創建一個handler,用于輸出到控制臺

ch = logging.StreamHandler()

# ch.setLevel(logging.INFO)

ch.setFormatter(formatter)

# 給logger添加handler

self.logger.addHandler(fh)

self.logger.addHandler(ch)

# 關閉打開的文件

fh.close()

ch.close()

def getLogger(self):

return self.logger

總結

以上是生活随笔為你收集整理的python一个类调用另一个类的方法_python 类静态方法实例化另一个类对象的问题?...的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。