日誌
程序在執行過程中多多少少都會遇到bug,bug記錄進日誌裏進行保存方便查看
import logging
#配置日誌的處理
logging.basicConfig(
filename='x1.log', #文件
format='%(asctime)s - %(name)s - %(lenvelname)s - %(module)s: %(message)s ', #格式化
datefmt='%Y-%m-d% %H-%M%S', #時間格式
level=10 #等級10以上會被寫入到日誌
)
# 向日志寫入內容
logging.critical("今天表哥回來了") # 40-50級,幾乎是最高的
logging.error("和嫂子...") #40級,平時使用最多
#logging.warn("生氣") #30 警告
logging.warning("警告") #有個橫線表示已經被去掉了,使用warning
logging.info("提示") # 20
logging.debug("開發的時候把這個開着") #10,記錄的最多
import logging
# 配置好日誌的處理, 默認就是GBK
logging.basicConfig(filename='x1.txt', # 把日誌信息寫入的文件名
format='%(asctime)s - %(name)s - %(levelname)s -%(module)s: %(message)s',
datefmt='%Y-%m-%d %H:%M:%S', # 時間的格式
level=40) # 當前配置表示 10以上的分數會被寫入日件
# 向日志文件寫入內容
logging.critical("今天嫂子沒有來") # 50, 幾乎是最高的
logging.error("昨天嫂子來了") # 40 平時使用最多的就是他
logging.warn("氣死我了") # 30 警告
logging.warning("還好吧")
logging.info("提示") # 20 級
logging.debug("開發的時候把這個開着") # 10
logging.log(999, "寶寶今天有懵逼了")
分類的存儲及應用
import logging
# 創建⼀個操作⽇志的對象logger(依賴FileHandler)
file_handler = logging.FileHandler('l1.log', 'a', encoding='utf-8')
file_handler.setFormatter(logging.Formatter(fmt="%(asctime)s - %(name)s - %(levelname)s -%(module)s: %(message)s"))
logger1 = logging.Logger('s1', level=logging.ERROR)
logger1.addHandler(file_handler)
logger1.error('我是A系統')
# 再創建⼀個操作⽇志的對象logger(依賴FileHandler)
file_handler2 = logging.FileHandler('l2.log', 'a', encoding='utf-8')
file_handler2.setFormatter(logging.Formatter(fmt="%(asctime)s - %(name)s -%(levelname)s -%(module)s: %(message)s"))
logger2 = logging.Logger('s2', level=logging.ERROR)
logger2.addHandler(file_handler2)
logger2.error('我是B系統')
import logging
# 創建一個操作日誌的對象logger(依賴FileHandler)
file_handler = logging.FileHandler('l1.log', 'a', encoding='utf-8') # 創建文件
file_handler.setFormatter(logging.Formatter(
fmt="%(asctime)s - %(name)s - %(levelname)s -%(module)s: %(message)s")) # 設置日誌文件的格式
logger1 = logging.Logger('騰訊qq', level=10) # 創建一個日誌文件處理對象
logger1.addHandler(file_handler) # 把文件添加到日誌
logger1.error("麻花藤明天請大家吃飯. 去不去?")
# 再創建⼀個操作⽇志的對象logger(依賴FileHandler)
file_handler2 = logging.FileHandler('l2.log', 'a', encoding='utf-8')
file_handler2.setFormatter(logging.Formatter(
fmt="%(asctime)s - %(name)s -%(levelname)s -%(module)s: %(message)s"))
logger2 = logging.Logger('百度貼吧', level=logging.DEBUG)
logger2.addHandler(file_handler2)
logger2.error("我纔不去呢. 我們在北京. 離你那麼遠")
import traceback
class GenderException(Exception):
pass
class Person:
def __init__(self, name, gender):
self.name = name
self.gender = gender
logger1.info(f"這個人的名字是{self.name}, 這個人的性別是:{self.gender}")
def xizao(self):
print(f"{self.name}在洗澡")
class ZaoTang:
def nan(self, ren):
if ren.gender == "男":
ren.xizao()
else:
raise GenderException("我這裏要的是男人")
def nv(self, ren):
if ren.gender == "女":
ren.xizao()
else:
raise GenderException("我這裏要的是女人")
try:
p1 = Person("趙亞磊", "男")
p2 = Person("林志玲", "女")
zaotang = ZaoTang()
zaotang.nan(p2)
zaotang.nv(p1)
except GenderException:
print("走錯屋裏了")
logger1.error("走錯屋了.. ")
logger1.error(traceback.format_exc()) # 把堆棧信息記錄在日誌文件中