电脑知识|欧美黑人一区二区三区|软件|欧美黑人一级爽快片淫片高清|系统|欧美黑人狂野猛交老妇|数据库|服务器|编程开发|网络运营|知识问答|技术教程文章 - 好吧啦网

您的位置:首頁技術文章
文章詳情頁

python 日志模塊logging的使用場景及示例

瀏覽:90日期:2022-06-30 15:13:28
前言

日志是對于軟件執行所發生的事件的一種追蹤記錄方式。日常使用過程中對代碼執行的錯誤和問題會進行查看日志來分析定位問題所在。平常編寫代碼以及調試也經常用到。通常的新手的做法是直接print打印,但是打印的結果只在控制臺顯示。今天我們學習一種高級的日志打印和記錄模塊logging。

logging提供了一系列的函數,它們是debug(), info(), warning(), error(), 和critical()。

他們的使用場景請看下表

你想要執行的任務 此任務的最好的工具 對于命令行或程序的應用,結果顯示在控制臺。 print() 在對程序的普通操作發生時提交事件報告(比如:狀態監控和錯誤調查) logging.info() 函數(當有診斷目的需要詳細輸出信息時使用 logging.debug() 函數) 提出一個警告信息基于一個特殊的運行時事件 warnings.warn()位于代碼庫中,該事件是可以避免的,需要修改客戶端應用以消除告警logging.warning() 不需要修改客戶端應用,但是該事件還是需要引起關注 對一個特殊的運行時事件報告錯誤 引發異常 報告錯誤而不引發異常(如在長時間運行中的服務端進程的錯誤處理) logging.error(), logging.exception() 或 logging.critical()分別適用于特定的錯誤及應用領域

日志功能分別對各種事件和嚴重性都進行分級。

名稱 何時使用 等級 DEBUG 細節信息,僅當診斷問題時適用。 10 INFO 確認程序按預期運行 20 WARNING 表明有已經或即將發生的意外(例如:磁盤空間不足)。程序仍按預期進行 30 ERROR 由于嚴重的問題,程序的某些功能已經不能正常執行 40 CRITICAL 嚴重的錯誤,表明程序已不能繼續執行 50

示例簡單示例

因為是python自帶的所以無需安裝,默認的級別是WARNING,所以下面只顯示一條warning信息。

import logginglogging.warning(’this is warning’)logging.info(’this is info’)

python 日志模塊logging的使用場景及示例

更改級別

我們將默認的級別改成最低級別,則會打印同級別以及高級別的日志信息

import logging logging.basicConfig(level=logging.DEBUG)logging.debug(’this is debug’)logging.info(’this is info’)logging.warning(’this is warning’)logging.error(’this is error’)

python 日志模塊logging的使用場景及示例

保存日志

只是打印到控制臺對于少量信息倒是可控,但是信息量大的時候就不方便查找了。那么我們需要將其保存到文件中。

import logging logging.basicConfig(level=logging.DEBUG,filename=’log.log’,format=’%(asctime)s - %(lineno)s - %(levelname)s - %(message)s’)logger = logging.getLogger(__name__)logger.debug(’this is debug’)logger.info(’this is info’)logger.warning(’this is warning’)logger.error(’this is error’)

python 日志模塊logging的使用場景及示例

上面我們在保存的時候,同時還添加了其他描述信息,比如執行時間,執行代碼行數,日志級別,打印消息。當然方法遠不止這些,具體請看下表

屬性名稱 格式 描述 ARGS 你不需要自己設置格式。 參數元組被合并到msg中以產生消息,或者其值被用于合并的詞典(當只有一個參數時,它是一個字典)。 asctime %(asctime)類 創建時的可讀時間。默認情況下,這是’2003-07-08 16:49:45,896’的格式(逗號之后的數字是毫秒部分)。 created %(created)的F 創建的時間(由time.time()返回)。 exc_info 你不需要自己設置格式。 異常元組(àla sys.exc_info)或,如果沒有發生異常,則為無。 filename %(filename)類 路徑名的文件名部分。 funcName %(funcName)類 包含日志記錄調用的函數的名稱。 levelname %(levelname)■ 文本消息級別(’DEBUG’,’INFO’,’WARNING’,’ERROR’,’CRITICAL’)。 levelno %(levelno)s 消息的數字記錄級別(DEBUG,INFO,WARNING,ERROR,CRITICAL)。 lineno %(lineno)d 發出日志記錄調用的源行號。 module %(module)類 模塊(文件名稱部分)。 msecs %(msecs)d 創建時的毫秒部分。 message %(message)類 記錄的消息,計算為msg%args。這是在調用Formatter.format()時設置的。 msg 你不需要自己設置格式。 在原始日志記錄調用中傳遞的格式字符串。與args合并生成消息或任意對象(請參閱使用任意對象作為消息)。 name %(name)類 用于記錄呼叫的記錄器的名稱。 pathname %(filename)類 發出日志記錄調用的源文件的完整路徑名。 process %(process)d 進程ID。 processName %(processName)類 進程名稱。 relativeCreated %(relativeCreated)d 相對于加載日志記錄模塊的時間,LogRecord創建時的時間(以毫秒為單位)。 thread %(thread)d 線程ID。 threadName %(threadName)類 線程名稱。

日志輸出進階

首先了解以下進階的方法的說明:

StreamHandler 類位于核心 logging 包,它可將日志記錄輸出發送到數據流例如 sys.stdout, sys.stderr 或任何文件類對象(或者更精確地說,任何支持 write() 和 flush() 方法的對象

FileHandler 類位于核心 logging 包,它可將日志記錄輸出到磁盤文件中。 它從 StreamHandler 繼承了輸出功能。

我們需要通過調用 Logger 類(以下稱為 loggers , 記錄器)的實例來執行日志記錄。

Logger 對象有三個常見的方法:

Logger.setLevel() 指定記錄器將處理的最低嚴重性日志消息,其中 debug 是最低內置嚴重性級別, critical 是最高內置嚴重性級別。 例如,如果嚴重性級別為 INFO ,則記錄器將僅處理 INFO 、 WARNING 、 ERROR 和 CRITICAL 消息,并將忽略 DEBUG 消息。 Logger.addHandler() 和 Logger.removeHandler() 從記錄器對象中添加和刪除處理程序對象。處理程序在以下內容中有更詳細的介紹 處理程序 。 Logger.addFilter() 和 Logger.removeFilter() 可以添加或移除記錄器對象中的過濾器。 Filter 對象 包含更多的過濾器細節。

下面示例采用添加日志記錄器對象輸出和上面一樣在控制臺打印

import logging logger = logging.getLogger(__name__)logger.setLevel(level=logging.INFO)handler = logging.StreamHandler()formatter = logging.Formatter(’%(asctime)s - %(lineno)s - %(levelname)s - %(message)s’)handler.setFormatter(formatter)logger.addHandler(handler) logger.info(’This is a log info’)logger.debug(’Debugging’)logger.warning(’Warning exists’)logger.info(’Finish’)

python 日志模塊logging的使用場景及示例

當然也同樣能保存到文件,為了演示修改了文件名稱為put.log

import logging logger = logging.getLogger(__name__)logger.setLevel(level=logging.INFO)handler = logging.FileHandler(’put.log’)formatter = logging.Formatter(’%(asctime)s - %(lineno)s - %(levelname)s - %(message)s’)handler.setFormatter(formatter)logger.addHandler(handler) logger.info(’This is a log info’)logger.debug(’Debugging’)logger.warning(’Warning exists’)logger.info(’Finish’)

python 日志模塊logging的使用場景及示例

日志雙向輸出

import logginglogger = logging.getLogger(__name__)logger.setLevel(level=logging.INFO)handler1 = logging.FileHandler(’output.log’)handler2 = logging.StreamHandler()formatter = logging.Formatter(’%(asctime)s - %(lineno)s - %(levelname)s - %(message)s’)handler1.setFormatter(formatter)handler2.setFormatter(formatter)logger.addHandler(handler1)logger.addHandler(handler2)logger.info(’This is a log info’)logger.debug(’Debugging’)logger.warning(’Warning exists’)logger.info(’Finish’)

python 日志模塊logging的使用場景及示例

python 日志模塊logging的使用場景及示例

以上就是python 日志模塊logging的使用場景及示例的詳細內容,更多關于python 日志模塊logging的使用的資料請關注好吧啦網其它相關文章!

標簽: Python 編程
相關文章:
主站蜘蛛池模板: 无缝钢管-聊城无缝钢管-小口径无缝钢管-大口径无缝钢管 - 聊城宽达钢管有限公司 | 电磁辐射仪-电磁辐射检测仪-pm2.5检测仪-多功能射线检测仪-上海何亦仪器仪表有限公司 | 沙盘模型公司_沙盘模型制作公司_建筑模型公司_工业机械模型制作厂家 | 国际船舶网 - 船厂、船舶、造船、船舶设备、航运及海洋工程等相关行业综合信息平台 | 全自动贴标机-套标机-工业热风机-不干胶贴标机-上海厚冉机械 | 比士亚-专业恒温恒湿酒窖,酒柜,雪茄柜的设计定制 | 赛尔特智能移动阳光房-阳光房厂家-赛尔特建筑科技(广东)有限公司 | 福州时代广告制作装饰有限公司-福州广告公司广告牌制作,福州展厅文化墙广告设计, | 深圳公司注册-工商注册代理-注册公司流程和费用_护航财税 | 黑龙江「京科脑康」医院-哈尔滨失眠医院_哈尔滨治疗抑郁症医院_哈尔滨精神心理医院 | 陕西鹏展科技有限公司 | Akribis直线电机_直线模组_力矩电机_直线电机平台|雅科贝思Akribis-杭州摩森机电科技有限公司 | 定量包装机,颗粒定量包装机,粉剂定量包装机,背封颗粒包装机,定量灌装机-上海铸衡电子科技有限公司 | 上海风淋室_上海风淋室厂家_上海风淋室价格_上海伯淋 | 杭州代理记账多少钱-注册公司代办-公司注销流程及费用-杭州福道财务管理咨询有限公司 | 涂层测厚仪_光泽度仪_uv能量计_紫外辐照计_太阳膜测试仪_透光率仪-林上科技 | 小学教案模板_中学教师优秀教案_高中教学设计模板_教育巴巴 | 组织研磨机-高通量组织研磨仪-实验室多样品组织研磨机-东方天净 传递窗_超净|洁净工作台_高效过滤器-传递窗厂家广州梓净公司 | 南溪在线-南溪招聘找工作、找房子、找对象,南溪综合生活信息门户! | 安驭邦官网-双向万能直角铣头,加工中心侧铣头,角度头[厂家直销] 闸阀_截止阀_止回阀「生产厂家」-上海卡比阀门有限公司 | 医学动画公司-制作3d医学动画视频-医疗医学演示动画制作-医学三维动画制作公司 | 校园气象站_超声波气象站_农业气象站_雨量监测站_风途科技 | 北京宣传片拍摄_产品宣传片拍摄_宣传片制作公司-现像传媒 | 粉碎机_塑料粉碎机_塑料破碎机厂家-星标机械 | 软膜天花_软膜灯箱_首选乐创品牌_一站式天花软膜材料供应商! | 楼承板-钢筋楼承板-闭口楼承板-无锡优贝斯楼承板厂 | 水厂自动化|污水处理中控系统|水利信息化|智慧水务|智慧农业-山东德艾自动化科技有限公司 | 泰兴市热钻机械有限公司-热熔钻孔机-数控热熔钻-热熔钻孔攻牙一体机 | 小学教案模板_中学教师优秀教案_高中教学设计模板_教育巴巴 | 硅胶管挤出机厂家_硅胶挤出机生产线_硅胶条挤出机_臣泽智能装备 贵州科比特-防雷公司厂家提供贵州防雷工程,防雷检测,防雷接地,防雷设备价格,防雷产品报价服务-贵州防雷检测公司 | 济南冷库安装-山东冷库设计|建造|冷库维修-山东齐雪制冷设备有限公司 | 阴离子聚丙烯酰胺价格_PAM_高分子聚丙烯酰胺厂家-河南泰航净水材料有限公司 | 对辊破碎机_四辊破碎机_双齿辊破碎机_华盛铭重工 | 网站优化公司_SEO优化_北京关键词百度快速排名-智恒博网络 | 电梯乘运质量测试仪_电梯安全评估测试仪-武汉懿之刻 | 辊道窑炉,辊道窑炉厂家-山东艾希尔 | 体坛网_体坛+_体坛周报新闻客户端| 臻知网大型互动问答社区-你的问题将在这里得到解答!-无锡据风网络科技有限公司 | 温州中研白癜风专科_温州治疗白癜风_温州治疗白癜风医院哪家好_温州哪里治疗白癜风 | 知企服务-企业综合服务(ZiKeys.com)-品优低价、种类齐全、过程管理透明、速度快捷高效、放心服务,知企专家! | 浙江华锤电器有限公司_地磅称重设备_防作弊地磅_浙江地磅售后维修_无人值守扫码过磅系统_浙江源头地磅厂家_浙江工厂直营地磅 |