zoukankan      html  css  js  c++  java
  • python log封装

     1 # _*_ coding:utf-8 _*_
     2 
     3 import logging
     4 import os
     5 import sys
     6 import time
     7 
     8 log_path = os.path.dirname(sys.path[0]) + '/log_path'
     9 
    10 class Log():
    11     def __init__(self):
    12         filename = 'test_' + time.strftime('%Y_%m_%d_%H%M%S') + '.log'   # 设置log名
    13         self.logname = os.path.join(log_path, filename)
    14         self.logger = logging.getLogger()
    15         self.logger.setLevel(logging.DEBUG)
    16         #设置日志输出格式
    17         self.formatter = logging.Formatter('%(asctime)s [%(levelname)s] [%(name)s:%(lineno)d] - %(message)s')
    18 
    19     def output(self, level, message):
    20         """
    21         :param level: 日志等级
    22         :param message: 日志需要打印的信息
    23         :return:
    24         """
    25         # send logging output to a disk file
    26         fh = logging.FileHandler(self.logname, 'a', encoding='utf-8')
    27         fh.setLevel(logging.DEBUG)
    28         fh.setFormatter(self.formatter)
    29         self.logger.addHandler(fh)
    30 
    31         # send logging output to streams
    32         ch = logging.StreamHandler()
    33         ch.setLevel(logging.DEBUG)
    34         ch.setFormatter(self.formatter)
    35         self.logger.addHandler(ch)
    36 
    37         if level == 'info':
    38             self.logger.info(message)
    39         elif level == 'debug':
    40             self.logger.debug(message)
    41         elif level == 'warn':
    42             self.logger.warn(message)
    43         elif level == 'error':
    44             self.logger.error(message)
    45 
    46         #防止重复打印
    47         self.logger.removeHandler(fh)
    48         self.logger.removeHandler(ch)
    49 
    50         fh.close()
    51 
    52     def info(self, message: object) -> object:
    53         self.output('info', message)
    54 
    55     def debug(self, message):
    56         self.output('debug', message)
    57 
    58     def warn(self, message):
    59         self.output('warn', message)
    60 
    61     def error(self, message):
    62         self.output('error', message)
  • 相关阅读:
    [underscore源码学习]——`>>` 运算符和二分查找
    【css】——三种方法实现多列等高
    【css】——根据div个数显示不同的样式
    拐点
    react.js 点击事件传递参数的方法
    react-router-dom 手动控制路由跳转
    书单
    PHP字符串操作汇总
    PHP数组操作汇总
    Yii防注入攻击笔记
  • 原文地址:https://www.cnblogs.com/mcboy/p/10774274.html
Copyright © 2011-2022 走看看