1. 程式人生 > >Python示例程式碼之列印日誌檔案

Python示例程式碼之列印日誌檔案

 

       在應用程式中,日誌列印是個必不可少的模組,本文演示了一個簡單的log日誌檔案列印的模型,在不考慮效率的場景中,可以使用該模組列印日誌資訊。

       日誌的列印格式可以描述如下:

       日誌型別一般包含如下四種類型:

       日誌檔案記錄被定義為一個類:Log,在程式啟動時建立一個新日誌檔案,在程式執行過程中的資訊都會列印輸出到該檔案中,直至程式執行結束,程式碼見下:

import time
import random

class Log(object):
    def __init__(self, time_stamp):  
        self.log_file_name = "./log/" + time_stamp + ".log"

    @classmethod
    def get_format_cur_time(self):
        return time.strftime('%Y-%m-%d-%H-%M-%S',time.localtime(time.time()));
    
    def get_cur_time(self):
        return time.strftime('%Y-%m-%d %H:%M:%S',time.localtime(time.time()));

    def log_print(self, msg_type, msg_content):
        cur_time = self.get_cur_time()
        line = "" + cur_time + "[" + msg_type + "] " + msg_content
        print (line)
        f = open(self.log_file_name, "a+")
        f.write(line + "\n" )
        f.close()

    def info(self, msg):
        self.log_print("info", msg)

    def warn(self, msg):
        self.log_print("warn", msg)

    def error(self, msg):
        self.log_print("error", msg)

      引用Log類的示例程式碼如下:

log = Log(Log.get_format_cur_time())
log.info("start test, please wait...")
for i in range(10):
    sleep_time = random.randint(0, 1000) % 5
    time.sleep(sleep_time)
    if sleep_time == 1:
        log.info("sleeped second:" + str(sleep_time))
    if sleep_time == 2:
        log.warn("sleeped second:" + str(sleep_time))
    if sleep_time == 3:
        log.error("sleeped second:" + str(sleep_time))     
log.info("congratulations, test is comlete, please have a rest.")

      執行示例程式碼後我們可以看到在log目錄下多了一個以時間戳命名的檔案,檔案內容截圖:

 

 

如果您喜歡這篇文章,別忘了點贊和評論哦!