python 日誌log封裝方法

2022-01-30 00:33:37 字數 1761 閱讀 1178

#coding=utf-8

import logging

import time

import os

log_path = os.path.join((os.path.dirname(os.path.dirname(os.path.realpath(__file__)))),'logs')

a=os.path.exists(log_path)

if a == false:#判斷a路徑是否存在,不存在則建立乙個路徑資料夾

os.mkdir(log_path)

class log:

def __init__(self):

# 初始化建立乙個帶時間戳的log檔案

self.logname = os.path.join(log_path, '.log'.format(time.strftime('%y-%m-%d')))

def __printconsole(self, level, message):

# 建立乙個logger

logger = logging.getlogger()

logger.setlevel(logging.debug)

# 建立乙個handler,用於寫入日誌檔案

fh = logging.filehandler(self.logname,'a',encoding='utf-8')

fh.setlevel(logging.debug)

# 再建立乙個handler,用於輸出到控制台

ch = logging.streamhandler()

ch.setlevel(logging.debug)

# 定義handler的輸出格式

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

fh.setformatter(formatter)

ch.setformatter(formatter)

# 給logger新增handler

logger.addhandler(fh)

logger.addhandler(ch)

# 記錄一條日誌

if level == 'info':

logger.info(message)

elif level == 'debug':

logger.debug(message)

elif level == 'warning':

logger.warning(message)

elif level == 'error':

logger.error(message)

logger.removehandler(ch)

logger.removehandler(fh)

# 關閉開啟的檔案

fh.close()

def debug(self,message):

self.__printconsole('debug', message)

def info(self,message):

self.__printconsole('info', message)

def warning(self,message):

self.__printconsole('warning', message)

def error(self,message):

self.__printconsole('error', message)

Python 日誌記錄 log

usr bin python3.4 logger物件相當於是寫日誌的人 hand處理器相當於是寫日誌的規則 import logging import datetime def my log record my logger,my formatter fh logging.filehandler m...

python日誌模組 封裝

import logging,time,os,sys 使用方法 在project主目錄下新建lib目錄,將logger fengzhuang.py檔案複製進去 呼叫方式 logger logger file or terminal file level debeg getlogger logger ...

python 日誌統計封裝

收集存放日誌 2021 3 1 coding utf 8 import logging import time import os 生成log存放目錄 輸出當前檔案目錄,在目錄最終拼接 logs log path os.path.join os.path.dirname os.path.dirnam...