日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

日志模块-logging模块

發(fā)布時(shí)間:2024/7/19 编程问答 36 豆豆
生活随笔 收集整理的這篇文章主要介紹了 日志模块-logging模块 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

日志模塊 -logging(非常重要)

  • 記錄用戶行為
  • 程序運(yùn)行過(guò)程
  • 程序錯(cuò)誤記錄
  • logging.debug()通常調(diào)試時(shí)用到的日志信息
  • logging.info() #證明事情按照預(yù)期的那樣工作
  • longging.warning() #表明發(fā)生了意外,或者不就得將來(lái)發(fā)生的問(wèn)題(如:磁盤滿了)軟件還是正常的工作
  • longging.error() #由于更嚴(yán)重的問(wèn)題導(dǎo)致軟件已經(jīng)不能繼續(xù)執(zhí)行某些功能
  • longging.critical() #嚴(yán)重錯(cuò)誤,表示軟件不能再繼續(xù)運(yùn)行下去
    • 程序默認(rèn)級(jí)別在info以上

      # 使用#導(dǎo)入logging模塊import logginglogging.debug('低級(jí)別的拍錯(cuò)信息') #低級(jí)別的排錯(cuò)信息logging.info('正常的信息') #正常信息logging.warning('警告信息') #警告信息logging.error('錯(cuò)誤信息') #錯(cuò)誤信息logging.critical('高級(jí)別的錯(cuò)誤信息') #高級(jí)別錯(cuò)誤信息#結(jié)果WARNING:root:警告信息ERROR:root:錯(cuò)誤信息CRITICAL:root:高級(jí)別的錯(cuò)誤信息
  • 簡(jiǎn)單配置

    import logging#配置logging logging.basicConfig(filename='logger.log', level=logging.INFO)logging.debug('低級(jí)別的拍錯(cuò)信息') #低級(jí)別的排錯(cuò)信息 logging.info('正常的信息') #正常信息 logging.warning('警告信息') #警告信息 logging.error('錯(cuò)誤信息') #錯(cuò)誤信息 logging.critical('高級(jí)別的錯(cuò)誤信息') #高級(jí)別錯(cuò)誤信息#結(jié)果 當(dāng)前文件路徑下生成了文件logger.log 其內(nèi)容如下: INFO:root:正常的信息 WARNING:root:警告信息 ERROR:root:錯(cuò)誤信息 CRITICAL:root:高級(jí)別的錯(cuò)誤信息
    • 因?yàn)橥ㄟ^(guò)level=logging.INFO設(shè)置了日志的通知級(jí)別,所以文件中打印出了INFO的信息

    basicConfig()常用配置參數(shù)

    logging.basicConfig()函數(shù)中可通過(guò)具體參數(shù)來(lái)更改logging模塊默認(rèn)行為,可用參數(shù)有:filename:用指定的文件名創(chuàng)建FiledHandler,這樣日志會(huì)被存儲(chǔ)在指定的文件中。filemode:文件打開(kāi)方式,在指定了filename時(shí)使用這個(gè)參數(shù),默認(rèn)值為“a”還可指定為“w”。format:指定handler使用的日志顯示格式。datefmt:指定日期時(shí)間格式。level:設(shè)置rootlogger(后邊會(huì)講解具體概念)的日志級(jí)別stream:用指定的stream創(chuàng)建StreamHandler??梢灾付ㄝ敵龅絪ys.stderr,sys.stdout或者文件(f=open(‘test.log’,’w’)),默認(rèn)為sys.stderr。若同時(shí)列出了filename和stream兩個(gè)參數(shù),則stream參數(shù)會(huì)被忽略。format參數(shù)中可能用到的格式化串:%(name)s Logger的名字%(levelno)s 數(shù)字形式的日志級(jí)別%(levelname)s 文本形式的日志級(jí)別%(pathname)s 調(diào)用日志輸出函數(shù)的模塊的完整路徑名,可能沒(méi)有%(filename)s 調(diào)用日志輸出函數(shù)的模塊的文件名%(module)s 調(diào)用日志輸出函數(shù)的模塊名%(funcName)s 調(diào)用日志輸出函數(shù)的函數(shù)名%(lineno)d 調(diào)用日志輸出函數(shù)的語(yǔ)句所在的代碼行%(created)f 當(dāng)前時(shí)間,用UNIX標(biāo)準(zhǔn)的表示時(shí)間的浮 點(diǎn)數(shù)表示%(relativeCreated)d 輸出日志信息時(shí)的,自Logger創(chuàng)建以 來(lái)的毫秒數(shù)%(asctime)s 字符串形式的當(dāng)前時(shí)間。默認(rèn)格式是 “2003-07-08 16:49:45,896”。逗號(hào)后面的是毫秒%(thread)d 線程ID??赡軟](méi)有%(threadName)s 線程名。可能沒(méi)有%(process)d 進(jìn)程ID。可能沒(méi)有%(message)s用戶輸出的消息
    • basicConfig有兩個(gè)坑(缺點(diǎn))
    • 對(duì)中文的兼容問(wèn)題,無(wú)法解決中文的亂碼問(wèn)題
    • 不能同時(shí)往文件和屏幕輸出

    利用對(duì)象的方式創(chuàng)建logging

    • 程序的充分解耦,讓程序變得高可定制化
    • 各功能相當(dāng)于綁定,功能的添加時(shí)通過(guò)對(duì)象之間的綁定

      import logging#創(chuàng)建一個(gè)logging對(duì)象logger = logging.getLogger()#創(chuàng)建一個(gè)logging文件對(duì)象fh = logging.FileHandler('text.log', encoding='utf-8', mode='a')#創(chuàng)建一個(gè)logging控制臺(tái)對(duì)象sh = logging.StreamHandler() #輸出至什么地方#輸出格式formatter = '%(asctime)s%(lineno)d'#創(chuàng)建輸出格式的對(duì)象fm = logging.Formatter(formatter) #設(shè)置一個(gè)格式#文件對(duì)象和控制臺(tái)對(duì)象添加輸出格式fh.setFormatter(fm) #以什么格式輸出至什么地方sh.setFormatter(fm)#給logging對(duì)象添加logger.addHandler(fh)logger.addHandler(sh)logging.debug('低級(jí)別的拍錯(cuò)信息') #低級(jí)別的排錯(cuò)信息logging.info('正常的信息') #正常信息logging.warning('警告信息') #警告信息logging.error('錯(cuò)誤信息') #錯(cuò)誤信息logging.critical('高級(jí)別的錯(cuò)誤信息') #高級(jí)別錯(cuò)誤信息
    • 非常靈活,自定義的程度很高,可以設(shè)定不同的輸出位置和不同的格式
    • logging庫(kù)提供了多個(gè)組件:Logger、Handler、Filter、Formatter。Logger對(duì)象提供應(yīng)用程序可直接使用的接口,Handler發(fā)送日志到適當(dāng)?shù)哪康牡?#xff0c;Filter提供了過(guò)濾日志信息的方法,Formatter指定日志顯示格式。另外,可以通過(guò)logger.setLevel(logging.Debug)設(shè)置級(jí)別,當(dāng)然,也可以通過(guò)
      fh.setLevel(logging.Debug)單對(duì)文件流設(shè)置某個(gè)級(jí)別

    總結(jié)

    配置方式兩種

    • basicConfig()直接設(shè)置全局
      • 不兼容中文模式
      • 不能同時(shí)多位置輸出
    • logging對(duì)象創(chuàng)建
      • 高定制,高靈活

    轉(zhuǎn)載于:https://www.cnblogs.com/liliudong/p/9660663.html

    總結(jié)

    以上是生活随笔為你收集整理的日志模块-logging模块的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

    如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。