python寫日志文件操作類與應(yīng)用示例
本文實例講述了python寫日志文件操作類與應(yīng)用。分享給大家供大家參考,具體如下:
項目的開發(fā)過程中,日志文件是少不了的,通過寫日志文件,可以知道程序運行的情況。特別當(dāng)部署在生產(chǎn)環(huán)境中的時候,這個時候一般不能debug , 當(dāng)然在有些情況時可以 remote debug (遠程debug)。那種情況另當(dāng)別論。還是用通常的寫日志的方法,比如在 java 中,經(jīng)??梢钥吹?log4j,sf4j,logback等三方組件來寫日志。
在python中如何實現(xiàn)呢,其實python 本身也帶了日志操作的庫??梢灾苯邮褂?。這里我把在項目中用到的整理了一下,分享在下面,這個實現(xiàn)的方法,主要有兩點
1. 寫日志的類
2.日志配置文件(handler,logger,以及日志保存的路徑等)
寫日志的類
'''
Created on 2012-2-17
@author: yihaomen.com
'''
import logging.config
import os
class INetLogger:
log_instance = None
@staticmethod
def InitLogConf():
currentDir=os.path.dirname(__file__)
INetLogger.log_instance = logging.config.fileConfig(currentDir+os.path.sep+"logger.ini")
@staticmethod
def GetLogger(name = ""):
if INetLogger.log_instance == None:
INetLogger.InitLogConf()
INetLogger.log_instance = logging.getLogger(name)
return INetLogger.log_instance
if __name__ == "__main__":
logger = INetLogger.GetLogger()
logger.debug("debug message")
logger.info("info message")
logger.warn("warn message")
logger.error("error message")
logger.critical("critical message")
logHello = INetLogger.GetLogger("root")
logHello.info("Hello world!")
日志配置文件,與上面的類在同一文件夾下 logger.ini
[loggers]
keys=root,mysql,socket
[handlers]
keys=consoleHandler,rotateFileHandler
[formatters]
keys=simpleFormatter
[formatter_simpleFormatter]
format=[%(asctime)s][%(levelname)s] [%(filename)s:%(lineno)d] [thread:%(thread)d]: %(message)s
[logger_root]
qualname=root
level=DEBUG
handlers=consoleHandler,rotateFileHandler
[logger_mysql]
qualname=mysql
level=DEBUG
handlers=rotateFileHandler
[logger_socket]
qualname=socket
level=ERROR
handlers=rotateFileHandler
[handler_consoleHandler]
class=StreamHandler
level=DEBUG
formatter=simpleFormatter
args=(sys.stdout,)
[handler_rotateFileHandler]
class=handlers.RotatingFileHandler
level=DEBUG
formatter=simpleFormatter
args=('c:/logs/InetServer.log', 'a', 2000000, 9)
如果你用了 handler_rotateFileHandler 的話,這樣日志就會保存到 才c:/logs/InetServer.log 文件里面,而且當(dāng)日志超過2000000 d的時候,重新另外生成一個文件,保存9天的記錄,你可以配置成30,這樣就保存了最近一個月的日志記錄。
更多關(guān)于Python相關(guān)內(nèi)容感興趣的讀者可查看本站專題:《Python日志操作技巧總結(jié)》、《Python函數(shù)使用技巧總結(jié)》、《Python字符串操作技巧匯總》、《Python入門與進階經(jīng)典教程》及《Python文件與目錄操作技巧匯總》
希望本文所述對大家Python程序設(shè)計有所幫助。
相關(guān)文章
PyTorch如何利用parameters()獲取模型參數(shù)
這篇文章主要介紹了PyTorch如何利用parameters()獲取模型參數(shù)問題,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教2023-09-09
Python 中將二進制轉(zhuǎn)換為整數(shù)的多種方法
這篇文章主要介紹了Python 中將二進制轉(zhuǎn)換為整數(shù),Python 中提供了多種方式將二進制字符串轉(zhuǎn)換為整數(shù),其中包括使用 int() 函數(shù)、使用二進制前綴和使用 eval() 函數(shù),本文通過實例代碼講解的非常詳細,需要的朋友可以參考下2023-05-05
linux 下python多線程遞歸復(fù)制文件夾及文件夾中的文件
這篇文章主要介紹了linux 下python多線程遞歸復(fù)制文件夾及文件夾中的文件,本文通過實例代碼給大家介紹的非常詳細,具有一定的參考借鑒價值,需要的朋友可以參考下2020-01-01
Python跨文件調(diào)用函數(shù)以及在一個文件中執(zhí)行另一個文件
這篇文章主要給大家介紹了關(guān)于Python跨文件調(diào)用函數(shù)以及在一個文件中執(zhí)行另一個文件的相關(guān)資料,文中通過實例代碼介紹的非常詳細,對大家學(xué)習(xí)或者使用Python具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下2022-12-12
分析語音數(shù)據(jù)增強及python實現(xiàn)
數(shù)據(jù)增強是一種生成合成數(shù)據(jù)的方法,即通過調(diào)整原始樣本來創(chuàng)建新樣本。這樣我們就可獲得大量的數(shù)據(jù)。這不僅增加了數(shù)據(jù)集的大小,還提供了單個樣本的多個變體,這有助于我們的機器學(xué)習(xí)模型避免過度擬合2021-06-06
詳解python的sorted函數(shù)對字典按key排序和按value排序
這篇文章主要介紹了詳解python的sorted函數(shù)對字典按key排序和按value排序,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2018-08-08
python list轉(zhuǎn)置和前后反轉(zhuǎn)的例子
今天小編就為大家分享一篇python list轉(zhuǎn)置和前后反轉(zhuǎn)的例子,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2019-08-08
關(guān)于Pytorch的MNIST數(shù)據(jù)集的預(yù)處理詳解
今天小編就為大家分享一篇關(guān)于Pytorch的MNIST數(shù)據(jù)集的預(yù)處理詳解,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-01-01

