python自定義logger日誌輸出檔案

2021-10-07 05:07:05 字數 1727 閱讀 3545

為什麼要寫日誌?

方便維護、方便除錯**、專案上線後,發現錯誤能快速定位到錯誤**。

web_logging.py

# -*- coding:utf-8 -*-

# [logger]

# 預設日誌格式

default_log_fmt =

'%(asctime)s %(filename)s [line:%(lineno)d] %(levelname)s: %(message)s'

# 預設時間格式

defualt_log_datefmt =

'%y-%m-%d %h:%m:%s'

# 輸出日誌路徑

import os

log_out_path = os.path.abspath(

'.')

+'/logs/'

import sys

import logging

from time import strftime

class

logger

(object):

def__init__

(self)

: self._logger = logging.getlogger(

) self.default_log_filename =

'.log'

.format

(log_out_path, strftime(

"%y-%m-%d"))

self.formatter = logging.formatter(fmt=default_log_fmt, datefmt=defualt_log_datefmt)

self._logger.addhandler(self._get_file_handler(self.default_log_filename)

) self._logger.addhandler(self._get_console_handler())

self._logger.setlevel(logging.info)

# 預設等級

def_get_file_handler

(self, filename)

: filehandler = logging.filehandler(filename, encoding=

"utf-8"

) filehandler.setformatter(self.formatter)

return filehandler

def_get_console_handler

(self)

: console_handler = logging.streamhandler(sys.stdout)

console_handler.setformatter(self.formatter)

return console_handler

@property

deflogger

(self)

:return self._logger

test.py

from web_logging import logger

logging = logger().logger

logging.info(u"{}:開始***操作".format(datetime.datetime.now()))

自定義引數 Python自定義函式引數

1.種類 1 位置引數 x就是位置引數 usr bin env python coding utf 8 def power x result x x print result 2 預設引數n就是預設引數 usr bin env python coding utf 8 def power x,n 1 ...

python 自定義序列

def checkindex key if key 0 raise indexerror if not isinstance key,int long raise typeerror class numberqueue def init self,start 0,step 1 self.start ...

python 自定義模組

python 的標準安裝包括了一組模組,稱之為標準庫 standard library 在專案開發,程式設計師會考慮 的可擴充套件性和 的可重用性,使用模組的好處,就是考慮使用了 的可重用性。模組 任何python程式都可以作為模組匯入,例如 編寫乙個hello.py檔案,包名 com.easymo...