中文字幕理论片,69视频免费在线观看,亚洲成人app,国产1级毛片,刘涛最大尺度戏视频,欧美亚洲美女视频,2021韩国美女仙女屋vip视频

打開(kāi)APP
userphoto
未登錄

開(kāi)通VIP,暢享免費(fèi)電子書(shū)等14項(xiàng)超值服

開(kāi)通VIP
python包和logging日志的相關(guān)介紹

https://www.php.cn/python-tutorials-428027.html

python包和logging日志

一、包

包:文件夾下具有__init__.py文件就是一個(gè)包,包用來(lái)管理多個(gè)模塊

包的結(jié)構(gòu)如下:

1

2

3

4

5

6

7

8

9

10

11

12

bake           

    ├── __init__.py      

    ├── api              

        ├── __init__.py

        ├── policy.py

        └── versions.py

  ├── cmd            

    ├── __init__.py

    └── manage.py

  └── db               

      ├── __init__.py

      └── models.py

在bake的同級(jí)創(chuàng)建一個(gè)test.py導(dǎo)入policy.py:

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

import bake.api.policy

bake.api.policy.get()

#導(dǎo)入的名字太長(zhǎng)了,可以起別名

import bake.api.policy as p

p.get()

#from 導(dǎo)入在__init__.py修改

from . import policy

#我們需要在policy文件中向sys.path添加了當(dāng)前的路徑

import os

import sys

sys.path.insert(os.path.dirname(__file__))

#print(__file__)查看一下

#使用__all__,在__init__.py中

__all__ = ["policy"]

#或

from . import policy

總結(jié):

import 包.包.包

from 包.包.包 import 模塊

路徑:

絕對(duì):從在外層開(kāi)始導(dǎo)入

相對(duì):從當(dāng)前開(kāi)始(.)導(dǎo)入或者從父級(jí)(..)導(dǎo)入

使用相對(duì)路徑時(shí)必須在包的最外層且同級(jí)

from 包 import *

需要在__init__.py做操作

python2:import文件夾(沒(méi)有__init__.py)會(huì)報(bào)錯(cuò)

python3:import文件夾(沒(méi)有__init__.py)不會(huì)報(bào)錯(cuò)

相關(guān)推薦:《Python視頻教程

二、logging模塊

logging模塊用于記錄軟件的各種狀態(tài),交易記錄,錯(cuò)誤記錄,登錄記錄……

1.函數(shù)式簡(jiǎn)單配置:

1

2

3

4

5

6

import logging

logging.debug('debug message')

logging.info('info message')

logging.warning('warning message')

logging.error('error message')

logging.critical('critical message')

默認(rèn)情況下python的logging模塊將日志打印到了標(biāo)準(zhǔn)輸出中,且只顯示了大于等于WARNING級(jí)別的日志,證明默認(rèn)的級(jí)別為WARNING

日志級(jí)別:CRITICAL > ERROR > WARNING > INFO > DEBUG

2.靈活配置日志級(jí)別,日志模式,輸入位置(低配版)

只能寫(xiě)入日志,不能公屏輸出

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

import logging

logging.basicConfig(level = logging.DEBUG,

                    format = '%(astime)s %(filename)s [line:%(lineno)d] %(levelname)s %(message)s',

                    datefmt = '%Y-%m-%d %H:%M:%S',

                    filename = 'test.log',

                    filemode = 'a')

dic = {"key":123}

logging.debug(dic)

num = 100

logging.info(f"用戶余額:{num - 50}")

try:

    num = int(input("請(qǐng)輸入數(shù)字:"))

except Exception as e:

    logging.warning("e")

logging.error('error message')

logging.critical('critical message')

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è)置記錄日志的級(jí)別

stream:用指定的stream創(chuàng)建StreamHandler??梢灾付ㄝ敵龅?/p>

sys.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用戶輸出的消息

3.logger對(duì)象配置(中配版)

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

import logging

logger = logging.getLogger()

# 創(chuàng)建一個(gè)logger

fh = logging.FileHandler('test.log',mode="a",encoding='utf-8')   # 文件

ch = logging.StreamHandler()   # 屏幕

formatter = logging.Formatter('%(asctime)s - %(name)s - %(filename)s - [line:%(lineno)d] -  %(levelname)s -

%(message)s')

# 將屏幕和文件都是用以上格式

logger.setLevel(logging.DEBUG)

# 設(shè)置記錄級(jí)別

fh.setFormatter(formatter)

# 使用自定義的格式化內(nèi)容

ch.setFormatter(formatter)

logger.addHandler(fh) #logger對(duì)象可以添加多個(gè)fh和ch對(duì)象

logger.addHandler(ch)

logger.debug('logger debug message')

logger.info('logger info message')

logger.warning('logger warning message')

logger.error('logger error message')

logger.critical('logger critical message')

以上就是python包和logging日志的相關(guān)介紹的詳細(xì)內(nèi)容,更多請(qǐng)關(guān)注php中文網(wǎng)其它相關(guān)文章!

  • 相關(guān)標(biāo)簽:python logging 日志
  • 本文轉(zhuǎn)載于:cnblogs,如有侵犯,請(qǐng)聯(lián)系a@php.cn刪除
  • 本站僅提供存儲(chǔ)服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊舉報(bào)。
    打開(kāi)APP,閱讀全文并永久保存 查看更多類似文章
    猜你喜歡
    類似文章
    [接口測(cè)試 - 基礎(chǔ)篇] 12 還是要掌握python日志管理模塊的
    【2019.05.26】python教程系列 - logging日志模塊
    python添加日志
    python的logging模塊【zz】
    【Python進(jìn)階】打印炫酷的日志,讓你的代碼不再單調(diào)乏味!
    Python中的logger和handler到底是個(gè)什么鬼
    更多類似文章 >>
    生活服務(wù)
    熱點(diǎn)新聞
    分享 收藏 導(dǎo)長(zhǎng)圖 關(guān)注 下載文章
    綁定賬號(hào)成功
    后續(xù)可登錄賬號(hào)暢享VIP特權(quán)!
    如果VIP功能使用有故障,
    可點(diǎn)擊這里聯(lián)系客服!

    聯(lián)系客服