Python自學基礎訓練之logging

2021-10-01 16:41:38 字數 2661 閱讀 2974

之前是一直用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...