Python logger模塊

1 logging模塊簡介

logging模塊是Python內置的標準模塊,主要用于輸出運行日志,可以設置輸出日志的等級、日志保存路徑、日志文件回滾等;相比print,具備如下優點:

  1. 可以通過設置不同的日志等級,在release版本中只輸出重要信息,而不必顯示大量的調試信息;
  2. print將所有信息都輸出到標準輸出中,嚴重影響開發者從標準輸出中查看其它數據;logging則可以由開發者決定將信息輸出到什么地方,以及怎么輸出;
Logger從來不直接實例化,經常通過logging模塊級方法(Module-Level ?Function)logging.getLogger(name)來獲得,其中如果name不給定就用root。名字是以點號分割的命名方式命名的(a.b.c)。對同一個名字的多個調用logging.getLogger()方法會返回同一個logger對象。這種命名方式里面,后面的loggers是前面logger的子logger,自動繼承父loggers的log信息,正因為此,沒有必要把一個應用的所有logger都配置一遍,只要把頂層的logger配置好了,然后子logger根據需要繼承就行了。
logging.Logger對象扮演了三重角色:
首先,它暴露給應用幾個方法以便應用可以在運行時寫log.
其次,Logger對象按照log信息的嚴重程度或者根據filter對象來決定如何處理log信息(默認的過濾功能).
最后,logger還負責把log信息傳送給相關的handlers.

2 logging模塊使用

2.1 基本使用

配置logging基本的設置,然后在控制臺輸出日志,

import logging
logging.basicConfig(level = logging.INFO,format = '%(asctime)s - %(name)s - %(levelname)s - %(message)s')
logger = logging.getLogger(__name__)logger.info("Start print log")
logger.debug("Do something")
logger.warning("Something maybe fail.")
logger.info("Finish")

運行時,控制臺輸出,

1 2016-10-09 19:11:19,434 - __main__ - INFO - Start print log
2 2016-10-09 19:11:19,434 - __main__ - WARNING - Something maybe fail.
3 2016-10-09 19:11:19,434 - __main__ - INFO - Finish

logging中可以選擇很多消息級別,如:DEBUG < INFO < WARNING < ERROR < CRITICAL,通過賦予logger或者handler不同的級別,開發者就可以只輸出錯誤信息到特定的記錄文件,或者在調試時只記錄調試信息。

將logger的級別改為DEBUG,再觀察一下輸出結果

logging.basicConfig(level = logging.DEBUG,format = '%(asctime)s - %(name)s - %(levelname)s - %(message)s')

從輸出結果可以看到,輸出了debug的日志記錄

2016-10-09 19:12:08,289 - __main__ - INFO - Start print log
2016-10-09 19:12:08,289 - __main__ - DEBUG - Do something
2016-10-09 19:12:08,289 - __main__ - WARNING - Something maybe fail.
2016-10-09 19:12:08,289 - __main__ - INFO - Finish

?

轉載于:https://www.cnblogs.com/yahengwang/p/11314695.html

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/447989.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/447989.shtml
英文地址,請注明出處:http://en.pswp.cn/news/447989.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

離合器半聯動

半聯動即離合器半聯動。 離合器半聯動是指離合器不穩定聯接的工作狀態&#xff0c;即駕駛員踩離合器踏板&#xff0c;使離合器壓板壓力逐步減小&#xff0c;造成主動盤與從動盤之間處于邊轉邊滑的狀態。在場內駕駛考試時&#xff0c;駕駛員由于操作不熟練&#xff0c;不能在要求…

學習 cookie session 正向代理和反向代理的區別

1.學習網址&#xff1a;https://www.cnblogs.com/wxinyu/p/9154178.html 1.1 當我打開一個瀏覽器的時候&#xff0c;客戶端有session id區分用戶, 服務器有了session的瀏覽記錄&#xff08;瀏覽器編號的txt&#xff09;.多個頁面則多個session&#xff0c; 1.2 token就是令牌…

JS 中 Map 與 JSON 轉換

前些天發現了一個巨牛的人工智能學習網站&#xff0c;通俗易懂&#xff0c;風趣幽默&#xff0c;忍不住分享一下給大家。點擊跳轉到教程。 1. JSON數據 轉 字符串 JSON.stringify(jsondata) 2. 字符串 轉 JSON JSON.parse(str) 3. Map 轉 JSON&#xff0c;需要先將Map轉化…

axios 發 post 請求,后端接收不到參數的解決方案

前些天發現了一個巨牛的人工智能學習網站&#xff0c;通俗易懂&#xff0c;風趣幽默&#xff0c;忍不住分享一下給大家。點擊跳轉到教程。 問題場景 場景很簡單&#xff0c;就是一個正常 axios post 請求&#xff1a; axios({headers: {deviceCode: A95ZEF1-47B5-AC90BF3},me…

nginx+keepalived高可用性負載均衡

一、前言nginx進程基于于MasterSlave(worker)多進程模型&#xff0c;自 身具有非常穩定的子進程管理功能。在Master進程分配模式下&#xff0c;Master進程永遠不進行業務處理&#xff0c;只是進行任務分發&#xff0c;從而達到Master進程的存 活高可靠性&#xff0c;Slave(work…

白發變黑有訣竅

白發變黑發的有效方法 1、要遠離焦慮&#xff1a; 如果天天的憂愁、煩惱、焦慮&#xff0c;則可能引起脫發&#xff0c;焦慮壓抑的時間越長&#xff0c;脫發就會迅速的加快。不管工作如何忙碌&#xff0c;建議女性保持適當的運動量以及愉快的心情&#xff0c;頭發也會富有光…

經典監督學習方法

生成算法嘗試去找這個數據到底是怎么生成的&#xff08;產生的&#xff09;&#xff0c;然后再對一個信號進行分類。基于你的生成假設&#xff0c;哪個類別最有可能產生這個信號&#xff0c;這個信號就屬于那個類別。 判別模型不關心數據是怎么生成的&#xff0c;它只關心信號之…

Map 集合循環、遍歷的 四 種方式

前些天發現了一個巨牛的人工智能學習網站&#xff0c;通俗易懂&#xff0c;風趣幽默&#xff0c;忍不住分享一下給大家。點擊跳轉到教程。 package cn.jdbc.test; import java.util.HashMap; import java.util.Iterator; import java.util.Map; import java.util.Map.Entry;/…

Ubuntu版本更新一路走來:朕就是這樣的漢子

今日&#xff0c;Ubuntu發布了最新的14.04版本。當然&#xff0c;業界對新版Ubuntu褒貶不一&#xff0c;為此我們回顧了Ubuntu版本更新歷史上幾個比較有代表性的版本&#xff0c;看看Ubuntu這一路走來究竟有什么變化。Ubuntu剛剛發布了最新的14.04版本&#xff0c;圍繞這一版本…

「2019紀中集訓Day7」解題報告

T1、小L的數列 給一個數列 \(\{f_i\}\)&#xff1a;\[ f_i \prod_{j 1}^{j \leq k} f_{i - j}^{b_j}, \ (i > k) \] 現在給定數列的前 \(k \ (k \le 200)\) 項及 \({b_i}\)&#xff0c;求第 \(n\) 項。 \(Sol\)&#xff1a; 注意到數列的任意一項 \(f_i \ (i > k)\)&am…

我想擁有一座莊園:“ 暮春三月,江南草長,雜花生樹,群鶯亂飛 ... ”

前些天發現了一個巨牛的人工智能學習網站&#xff0c;通俗易懂&#xff0c;風趣幽默&#xff0c;忍不住分享一下給大家。點擊跳轉到教程。 // 或許這個心愿是緣于少時讀的詩&#xff1a;其中大多是對于自然的期許和神往 ... // 亦或許是想太多的人大多都有這樣的心愿 ... 我想…

安裝Ubuntu 14.04后要做的5件事情

Ubuntu最新版本Ubuntu 14.04已經發布&#xff0c;它是一個長期支持版本&#xff08;LTS&#xff09;&#xff0c;提供軟件包和安全更新的服務周期為5年。本文為大家簡單介紹了Ubuntu 14.04版本新特性和安裝Ubuntu 14.04后需要做的5件事情&#xff0c;以供參考。Ubuntu目前是世界…

昨天,我的大學學習[2]

昨天&#xff0c;我的大學學習[2] 曾毅 誰能改變我的命運[大學二年級] 如果說大學一年級的時候是一種被動學習狀態&#xff0c;對計算機科學不能攬其全貌&#xff0c;那么進入大學二年級以后的學習便是比較有針對性的了&#xff0c;但這種轉變并非偶然&#xff0c;同樣也是經過…

VUE 項目 去除 input 框值 所有空格、vue 組件去除空格、input 去除空格

前些天發現了一個巨牛的人工智能學習網站&#xff0c;通俗易懂&#xff0c;風趣幽默&#xff0c;忍不住分享一下給大家。點擊跳轉到教程。 1.以下所有方法 我都試過&#xff1a;不行。 str.trim(); //去掉首尾空格 str.replace(" ",""); //去除所有空格&…

性能優化之節流、防抖

1. 防抖&#xff1a; 由于dom操作極其昂貴&#xff0c;所以嘗試過多的dom操作有可能會將瀏覽器搞崩潰&#xff0c;比如onresize、onscroll這類事件操作&#xff1b;為了解決這個問題&#xff0c;引出防抖的概念&#xff08;某些代碼不可以在沒有間斷的情況下連續重復執行&#…

百萬用戶規模的系統如何擴展

摘要&#xff1a;系統擴展一直是個讓人頭疼的事情&#xff0c;MatinKleppmann通過本文分享了他自己的6條經驗&#xff0c;外加網友的一條建議&#xff0c;這些經驗對于擴展Twitter這樣規模的系統或許幫助不大&#xff0c;但是對于百萬用戶級別的系統擴展就另當別論了。 【編者…

springboot 項目輸出 sql 到控制臺、 SpringBoot 中 Mybatis 打印 sql

前些天發現了一個巨牛的人工智能學習網站&#xff0c;通俗易懂&#xff0c;風趣幽默&#xff0c;忍不住分享一下給大家。點擊跳轉到教程。 SpringBoot中Mybatis打印sql 如果使用的是 application.properties 文件&#xff0c;加入如下配置&#xff1a; logging.level.com.ex…

JS流程圖解決方案GoJS

GoJs簡介 一個實現交互類圖表&#xff08;比如流程圖&#xff0c;樹圖&#xff0c;關系圖&#xff0c;力導圖等等&#xff09;的JS庫 GoJS依賴于HTML5&#xff0c;所以請保證您的瀏覽器版本支持HTML5&#xff0c;當然還要加載這個庫。 首先個人建議先下載官方實例的 離線版本【…

VUE.JS 組件化開發實踐

前些天發現了一個巨牛的人工智能學習網站&#xff0c;通俗易懂&#xff0c;風趣幽默&#xff0c;忍不住分享一下給大家。點擊跳轉到教程。 前言 公司目前制作一個H5活動&#xff0c;特別是有一定統一結構的活動&#xff0c;都要碼一個重復的輪子。后來接到一個基于模板的活動…

Space Time Varying Color Palette

PDF Space Time Varying Color Palettes from Bo Zhou轉載于:https://www.cnblogs.com/Jedimaster/p/4941857.html