最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Python logging模塊學(xué)習(xí)筆記

 更新時間:2014年05月24日 16:09:03   作者:  
這篇文章主要介紹了Python logging模塊,logging模塊是在2.3新引進的功能,用來處理程序運行中的日志管理,本文詳細講解了該模塊的一些常用的類和模塊級函數(shù),需要的朋友可以參考下

模塊級函數(shù)

logging.getLogger([name]):返回一個logger對象,如果沒有指定名字將返回root logger
logging.debug()、logging.info()、logging.warning()、logging.error()、logging.critical():設(shè)定root logger的日志級別
logging.basicConfig():用默認Formatter為日志系統(tǒng)建立一個StreamHandler,設(shè)置基礎(chǔ)配置并加到root logger中

示例:logging_level_example.py

復(fù)制代碼 代碼如下:

import logging
import sys

LEVELS = {'debug': logging.DEBUG,
          'info': logging.INFO,
          'warning': logging.WARNING,
          'error': logging.ERROR,
          'critical': logging.CRITICAL}

if len(sys.argv) > 1:
    level_name = sys.argv[1]
    level = LEVELS.get(level_name, logging.NOTSET)
    logging.basicConfig(level=level)

logging.debug('This is a debug message')
logging.info('This is an info message')
logging.warning('This is a warning message')
logging.error('This is an error message')
logging.critical('This is a critical error message')

輸出:
復(fù)制代碼 代碼如下:

$ python logging_level_example.py debug
DEBUG:root:This is a debug message
INFO:root:This is an info message
WARNING:root:This is a warning message
ERROR:root:This is an error message
CRITICAL:root:This is a critical error message

$ python logging_level_example.py info
INFO:root:This is an info message
WARNING:root:This is a warning message
ERROR:root:This is an error message
CRITICAL:root:This is a critical error message

Loggers

Logger.setLevel(lel):指定最低的日志級別,低于lel的級別將被忽略。debug是最低的內(nèi)置級別,critical為最高
Logger.addFilter(filt)、Logger.removeFilter(filt):添加或刪除指定的filter
Logger.addHandler(hdlr)、Logger.removeHandler(hdlr):增加或刪除指定的handler
Logger.debug()、Logger.info()、Logger.warning()、Logger.error()、Logger.critical():可以設(shè)置的日志級別

示例:simple_logging_module.py

復(fù)制代碼 代碼如下:

import logging

# create logger
logger = logging.getLogger("simple_example")
logger.setLevel(logging.DEBUG)

# create console handler and set level to debug
ch = logging.StreamHandler()
ch.setLevel(logging.DEBUG)

# create formatter
formatter = logging.Formatter("%(asctime)s - %(name)s - %(levelname)s - %(message)s")

# add formatter to ch
ch.setFormatter(formatter)

# add ch to logger
logger.addHandler(ch)

# "application" code
logger.debug("debug message")
logger.info("info message")
logger.warn("warn message")
logger.error("error message")
logger.critical("critical message")

輸出:
復(fù)制代碼 代碼如下:

$ python simple_logging_module.py
2005-03-19 15:10:26,618 - simple_example - DEBUG - debug message
2005-03-19 15:10:26,620 - simple_example - INFO - info message
2005-03-19 15:10:26,695 - simple_example - WARNING - warn message
2005-03-19 15:10:26,697 - simple_example - ERROR - error message
2005-03-19 15:10:26,773 - simple_example - CRITICAL - critical message

Handlers

handler對象負責發(fā)送相關(guān)的信息到指定目的地??梢酝ㄟ^addHandler()方法添加多個多handler
Handler.setLevel(lel):指定被處理的信息級別,低于lel級別的信息將被忽略
Handler.setFormatter():給這個handler選擇一個格式
Handler.addFilter(filt)、Handler.removeFilter(filt):新增或刪除一個filter對象

Formatters

Formatter對象設(shè)置日志信息最后的規(guī)則、結(jié)構(gòu)和內(nèi)容,默認的時間格式為%Y-%m-%d %H:%M:%S,下面是Formatter常用的一些信息

%(name)s

Logger的名字

%(levelno)s

數(shù)字形式的日志級別

%(levelname)s

文本形式的日志級別

%(pathname)s

調(diào)用日志輸出函數(shù)的模塊的完整路徑名,可能沒有

%(filename)s

調(diào)用日志輸出函數(shù)的模塊的文件名

%(module)s

調(diào)用日志輸出函數(shù)的模塊名

%(funcName)s

調(diào)用日志輸出函數(shù)的函數(shù)名

%(lineno)d

調(diào)用日志輸出函數(shù)的語句所在的代碼行

%(created)f

當前時間,用UNIX標準的表示時間的浮 點數(shù)表示

%(relativeCreated)d

輸出日志信息時的,自Logger創(chuàng)建以 來的毫秒數(shù)

%(asctime)s

字符串形式的當前時間。默認格式是 “2003-07-08 16:49:45,896”。逗號后面的是毫秒

%(thread)d

線程ID??赡軟]有

%(threadName)s

線程名。可能沒有

%(process)d

進程ID。可能沒有

%(message)s

用戶輸出的消息


最后來個完整例子:

復(fù)制代碼 代碼如下:

import logging

# set up logging to file - see previous section for more details
logging.basicConfig(level=logging.DEBUG,
                    format='%(asctime)s %(name)-12s %(levelname)-8s %(message)s',
                    datefmt='%m-%d %H:%M',
                    filename='/temp/myapp.log',
                    filemode='w')
# define a Handler which writes INFO messages or higher to the sys.stderr
console = logging.StreamHandler()
console.setLevel(logging.INFO)
# set a format which is simpler for console use
formatter = logging.Formatter('%(name)-12s: %(levelname)-8s %(message)s')
# tell the handler to use this format
console.setFormatter(formatter)
# add the handler to the root logger
logging.getLogger('').addHandler(console)

# Now, we can log to the root logger, or any other logger. First the root...
logging.info('Jackdaws love my big sphinx of quartz.')

# Now, define a couple of other loggers which might represent areas in your
# application:

logger1 = logging.getLogger('myapp.area1')
logger2 = logging.getLogger('myapp.area2')

logger1.debug('Quick zephyrs blow, vexing daft Jim.')
logger1.info('How quickly daft jumping zebras vex.')
logger2.warning('Jail zesty vixen who grabbed pay from quack.')
logger2.error('The five boxing wizards jump quickly.')

運行后,在終端看到的結(jié)果

復(fù)制代碼 代碼如下:

root        : INFO     Jackdaws love my big sphinx of quartz.
myapp.area1 : INFO     How quickly daft jumping zebras vex.
myapp.area2 : WARNING  Jail zesty vixen who grabbed pay from quack.
myapp.area2 : ERROR    The five boxing wizards jump quickly.

在日志文件中的結(jié)果

復(fù)制代碼 代碼如下:

10-22 22:19 root         INFO     Jackdaws love my big sphinx of quartz.
10-22 22:19 myapp.area1  DEBUG    Quick zephyrs blow, vexing daft Jim.
10-22 22:19 myapp.area1  INFO     How quickly daft jumping zebras vex.
10-22 22:19 myapp.area2  WARNING  Jail zesty vixen who grabbed pay from quack.
10-22 22:19 myapp.area2  ERROR    The five boxing wizards jump quickly.

發(fā)現(xiàn)DEBUG信息只有在文件中出現(xiàn),這是因為StreamHandler中setLevel是INFO,可以看出Logger.setLevel()和handler.setLevel()的區(qū)別

詳細信息請參閱 http://docs.python.org/library/logging.html

相關(guān)文章

  • 打包PyQt5應(yīng)用時的注意事項

    打包PyQt5應(yīng)用時的注意事項

    這篇文章主要介紹了打包PyQt5應(yīng)用時的注意事項的相關(guān)資料,需要的朋友可以參考下
    2020-02-02
  • python網(wǎng)絡(luò)編程學(xué)習(xí)筆記(二):socket建立網(wǎng)絡(luò)客戶端

    python網(wǎng)絡(luò)編程學(xué)習(xí)筆記(二):socket建立網(wǎng)絡(luò)客戶端

    看了這一節(jié),突然之間對python網(wǎng)絡(luò)編程學(xué)習(xí)筆記(1)中的一些不理解的問題有了認識,至少明白了socket是怎么回事。這里關(guān)于socket的起源等問題就不做筆記記錄了,直接進入主題
    2014-06-06
  • 解決Keras中Embedding層masking與Concatenate層不可調(diào)和的問題

    解決Keras中Embedding層masking與Concatenate層不可調(diào)和的問題

    這篇文章主要介紹了解決Keras中Embedding層masking與Concatenate層不可調(diào)和的問題,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-06-06
  • numpy中np.nditer、flags=[multi_index] 的用法說明

    numpy中np.nditer、flags=[multi_index] 的用法說明

    這篇文章主要介紹了numpy中np.nditer、flags=['multi_index'] 的用法說明,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2021-05-05
  • 如何創(chuàng)建第一個Pygame程序

    如何創(chuàng)建第一個Pygame程序

    本文主要介紹了如何創(chuàng)建第一個Pygame程序,文中通過示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2021-11-11
  • Python colormap庫的安裝和使用詳情

    Python colormap庫的安裝和使用詳情

    這篇文章主要介紹了Python colormap庫的安裝和使用詳情,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-10-10
  • 如何在python?中導(dǎo)入?package

    如何在python?中導(dǎo)入?package

    這篇文章主要介紹了?如何在python中導(dǎo)入,package,package?在python中是一種有效組織代碼,module可以是一個文件,可以通過import來導(dǎo)入一個module?單個文件,而,package,則是作為一個目錄來導(dǎo)入,下文操作流程需要的朋友可以參考一下
    2022-04-04
  • 給ubuntu18安裝python3.7的詳細教程

    給ubuntu18安裝python3.7的詳細教程

    這篇文章主要介紹了給ubuntu18安裝python3.7的詳細教程,本文通過圖文并茂的形式給大家介紹的非常詳細,對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2020-06-06
  • Pandas數(shù)據(jù)查詢的集中實現(xiàn)方法

    Pandas數(shù)據(jù)查詢的集中實現(xiàn)方法

    本文主要介紹了Pandas數(shù)據(jù)查詢的集中實現(xiàn)方法,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2023-02-02
  • Python極值整數(shù)的邊界探討分析

    Python極值整數(shù)的邊界探討分析

    這篇文章主要介紹了Python極值整數(shù)的邊界探討分析,閱讀本文來一起領(lǐng)略Python中的極值,看一下Python整數(shù)是否有邊界,有需要的朋友可以借鑒參考下
    2021-09-09

最新評論

阿拉善盟| 三亚市| 金华市| 郧西县| 澎湖县| 伊川县| 柘荣县| 乾安县| 信阳市| 清流县| 保山市| 兴业县| 驻马店市| 康乐县| 界首市| 滦平县| 于田县| 喜德县| 辽阳市| 石景山区| 长乐市| 乡城县| 比如县| 临邑县| 阜平县| 中西区| 竹山县| 鹤峰县| 泸西县| 舟山市| 顺平县| 芒康县| 广灵县| 山东| 体育| 色达县| 宜宾市| 多伦县| 门源| 十堰市| 高邮市|