為什麼要寫日誌?
方便維護、方便除錯**、專案上線後,發現錯誤能快速定位到錯誤**。
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...