Python logging日誌模組

2021-08-30 19:35:26 字數 4389 閱讀 2142

1.日誌的級別

日誌一共分成5個等級, 從低到高分別是:

1

. debug

2. info

3. warning

4. error

5. critical

說明:

這5個等級, 也分別對應5種打日誌的方法: debug 、 info 、 warning 、 error 、 critical。 預設的是 warning, 當在warning或之上時才被跟蹤。

2.日誌的輸出

2.1將日誌輸出到控制台

import logging

logging.basicconfig(level=logging.warning,

format

='%(asctime)s - %(filename)s[line:%(lineno)d] - %(levelname)s: %(message)s'

)# 開始使用log功能

logging.info(

'這是 loggging info message'

) logging.debug(

'這是 loggging debug message'

) logging.warning(

'這是 loggging a warning message'

) logging.error(

'這是 an loggging error message'

) logging.critical(

'這是 loggging critical message'

)

輸出結果:

2018-11

-0308:

42:59,

353-

004-日誌.py[line:6]

- warning: 這是 loggging a warning message

2018-11

-0308:

42:59,

353-

004-日誌.py[line:7]

- error: 這是 an loggging error message

2018-11

-0308:

42:59,

353-

004-日誌.py[line:8]

- critical: 這是 loggging critical message

2.2將日誌輸出到檔案
import logging

logging.basicconfig(level=logging.warning,

filename=

'./log.txt'

,# 檔案路徑及檔名

filemode=

'w',

format

='%(asctime)s - %(filename)s[line:%(lineno)d] - %(levelname)s: %(message)s'

)# use logging

logging.info(

'這是 loggging info message'

) logging.debug(

'這是 loggging debug message'

) logging.warning(

'這是 loggging a warning message'

) logging.error(

'這是 an loggging error message'

) logging.critical(

'這是 loggging critical message'

)

輸出結果:

在檔名下生成log.txt,內容與上面相同
2.3將日誌輸出到控制台和檔案(重點)

需要用到logger的物件 ,具體**如下:

import logging

# 第一步, 建立乙個logger

logger = logging.getlogger(

) logger.setlevel(logging.info)

# log等級總開關

# 第二步, 建立乙個handler, 用於寫入日誌檔案

logfile =

'./log.txt'

fh = logging.filehandler(logfile, mode=

'a')

# open的開啟模式這裡可以進行參考

fh.setlevel(logging.debug)

# 輸出到file的log等級的開關

# 第三步, 再建立乙個handler, 用於輸出到控制台

ch = logging.streamhandler(

) ch.setlevel(logging.warning)

# 輸出到console的log等級的開關

# 第四步, 定義handler的輸出格式

formatter = logging.formatter(

"%(asctime)s - %(filename)s[line:%(lineno)d] - %(levelname)s: %(message)s"

) fh.setformatter(formatter)

# 檔案

ch.setformatter(formatter)

# 控制台

# 第五步, 將logger新增到handler裡面

logger.addhandler(fh)

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'

)

輸出結果

""""控制台""""

2018-11

-0314:

25:53,

887-

004-日誌.py[line:53]

- warning: 這是 logger warning message

2018-11

-0314:

25:53,

887-

004-日誌.py[line:54]

- error: 這是 logger error message

2018-11

-0314:

25:53,

887-

004-日誌.py[line:55]

- critical: 這是 logger critical message

""" 檔案 """

2018-11

-0314:

25:53,

887-

004-日誌.py[line:52]

- info: 這是 logger info message

2018-11

-0314:

25:53,

887-

004-日誌.py[line:53]

- warning: 這是 logger warning message

2018-11

-0314:

25:53,

887-

004-日誌.py[line:54]

- error: 這是 logger error message

2018-11

-0314:

25:53,

887-

004-日誌.py[line:55]

- critical: 這是 logger critical message

logging.basicconfig函式中, 可以指定日誌的輸出格式format, 這個引數可以輸出很多有用的信 息, 如下:

在工作中給的常用格式如下: (重點)

format

='%(asctime)s - %(filename)s[line:%(lineno)d] - %(levelname)s: %(message)s'

這個格式可以輸出日誌的列印時間, 是哪個模組輸出的, 輸出的日誌級別是什麼, 以及輸入的日誌 內容。

python logging日誌模組

logging模組是python的乙個標準庫模組,由標準庫模組提供日誌記錄api的關鍵好處是所有python模組都可以使用這個日誌記錄功能。所以,你的應用日誌可以將你自己的日誌資訊與來自第三方模組的資訊整合起來。1.日誌級別 logging模組預設定義了以下幾個日誌等級,開發應用程式或部署開發環境時...

python logging日誌設定

log等級,輸出格式,輸出檔名,檔案讀寫模式 logging.basicconfig level logging.debug,format asctime s filename s line lineno d levelname s message s filename log.txt filemo...

python logging日誌記錄

import logging from logging.handlers import rotatingfilehandler,timedrotatingfilehandler 建立日誌記錄者 logger logging.getlogger test logger 日誌記錄等級 logger.se...