之前是一直用print輸出,有點不方便,如果用logging的話,可以另外輸出,容易查詢問題點,如果之前不寫,後面再看起自己的**,也需要花費好長時間。
import logging
logging.basicconfig(level=logging.debug,
format='%(asctime)s %(filename)s[line:%(lineno)d] %(levelname)s %(message)s',
datefmt='%a, %d %b %y %h:%m:%s',
filemode='w')
logging.debug('this is debug message')
logging.info('this is info message')
logging.warning('this is warning message')
這個是網上抄的,現成的,只需更改儲存路徑
import logging
logger = logging.getlogger("******_example")
logger.setlevel(logging.debug)
# 建立乙個filehandler來把日誌記錄在檔案裡,級別為debug以上
fh = logging.filehandler("y:")#儲存路徑
fh.setlevel(logging.debug)
# 建立乙個streamhandler來把日誌打在cmd視窗上,級別為error以上
ch = logging.streamhandler()
ch.setlevel(logging.error)
# 設定日誌格式
formatter = logging.formatter("%(asctime)s - %(name)s - %(levelname)s - %(message)s")
ch.setformatter(formatter)
fh.setformatter(formatter)
#將相應的handler新增在logger物件中
logger.addhandler(ch)
logger.addhandler(fh)
# 開始打日誌
logger.debug("debug message")
logger.info("info message")
logger.warn("warn message")
logger.error("error message")
logger.critical("critical message")
#python中內建的日誌模組logging用法詳解
#*****==當乙個專案比較大的時候,不同的檔案中都要用到log,可以考慮將其封裝為乙個類來使用
#! /usr/bin/env python
# coding=gbk
import logging, os
class logger:
def __init__(self, path, clevel=logging.debug, flevel=logging.debug):
self.logger = logging.getlogger(path)
self.logger.setlevel(logging.debug)
fmt = logging.formatter('[%(asctime)s] [%(levelname)s] %(message)s', '%y-%m-%d %h:%m:%s')
# 設定cmd日誌
sh = logging.streamhandler()
sh.setformatter(fmt)
sh.setlevel(clevel)
# 設定檔案日誌
fh = logging.filehandler(path)
fh.setformatter(fmt)
fh.setlevel(flevel)
self.logger.addhandler(sh)
self.logger.addhandler(fh)
def debug(self, message):
self.logger.debug(message)
def info(self, message):
self.logger.info(message)
def war(self, message):
self.logger.warn(message)
def error(self, message):
self.logger.error(message)
def cri(self, message):
self.logger.critical(message)
if __name__ == '__main__':
logyyx = logger('y:', logging.error, logging.debug)#儲存路徑
logyyx.debug('乙個debug資訊')
logyyx.info('乙個info資訊')
logyyx.war('乙個warning資訊')
logyyx.error('乙個error資訊')
logyyx.cri('乙個致命critical資訊')
Python自學基礎訓練之佇列(二)
這是另外一種形式表達方式,基本上學習完一種就可以了。from threading import thread import queue 容器,也可以用陣列,列表,字典形式 import time class producer thread 生產者其實這個threading.thread一樣的,只是他...
Python基礎訓練(一)
1.閏年判斷 給定乙個年份,判斷這一年是不是閏年。當以下情況之一滿足時,這一年是閏年 1 年份是4的倍數而不是100的倍數 2 年份是400的倍數。其他的年份都不是閏年。n int input if n 4 0 and n 100 0 print yes elif n 400 0 print yes...
Python基礎訓練(二)
1.楊輝三角 楊輝三角形又稱pascal三角形,它的第i 1行是 a b i的展開式的係數。它的乙個重要性質是 三角形中的每個數字等於它兩肩上的數字相加。下面給出了楊輝三角形的前4行 1 11 2 1 1 3 3 1 給出n,輸出它的前n行。輸入格式 輸入包含乙個數n。輸出格式 輸出楊輝三角形的前n...