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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 人文社科 > 生活经验 >内容正文

生活经验

logging模块

發布時間:2023/11/27 生活经验 26 豆豆
生活随笔 收集整理的這篇文章主要介紹了 logging模块 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

?

import logging
from conf import settingsdef logger(log_type):# 生成 logger 對象logger = logging.getLogger(log_type)logger.setLevel(settings.LOG_LEVEL)# 生成handler對象,向文件輸出日志信息log_file = "%s/log/%s.log" % (settings.BASE_DIR, log_type)global fhfh = logging.FileHandler(log_file)fh.setLevel(settings.LOG_LEVEL)# 生成formatter對象formatter = logging.Formatter('%(asctime)s - %(name)s - %(levelname)s - %(message)s')# formatter對象綁定到handler對象
    fh.setFormatter(formatter)if logger.handlers:  # 清空logger.handlers,否則會重復打印日志
        logger.handlers.pop()# handler對象綁定到logger
    logger.addHandler(fh)return logger
logger.py

?

%(name)s    Logger的名字
%(levelno)s    數字形式的日志級別
%(levelname)s    文本形式的日志級別
%(pathname)s    調用日志輸出函數的模塊的完整路徑名,可能沒有
%(filename)s    調用日志輸出函數的模塊的文件名
%(module)s    調用日志輸出函數的模塊名
%(funcName)s    調用日志輸出函數的函數名
%(lineno)d    調用日志輸出函數的語句所在的代碼行
%(created)f    當前時間,用UNIX標準的表示時間的浮 點數表示
%(relativeCreated)d    輸出日志信息時的,自Logger創建以 來的毫秒數
%(asctime)s    字符串形式的當前時間。默認格式是 “2003-07-08 16:49:45,896”。逗號后面的是毫秒
%(thread)d    線程ID。可能沒有
%(threadName)s    線程名。可能沒有
%(process)d    進程ID。可能沒有
%(message)s    用戶輸出的消息
自定義格式

?

?

生成logger對象

 1 def logger():
 2     logger = logging.getLogger()
 3 
 4     #設置logger
 5     fh = logging.FileHandler('text_log')#向文件發送信息
 6     ch = logging.StreamHandler()#向屏幕發送信息
 7 
 8     #定義格式
 9     fm = logging.Formatter('%(asctime)s %(filename)s')
10     fh.setFormatter(fm)  #設置fh的格式
11     ch.setFormatter(fm)  #設置ch的格式
12 
13     logger.addHandler(fh)  #傳給logger
14     logger.addHandler(ch)  #傳給logger
15     logger.setLevel('DEBUG')
16 
17     return logger

調用logger

logging的日志可以分為?debug(), info(), warning(), error() and critical()5個級別

1 logger = logger()
2 
3 logging.debug('debug message')
4 logging.info('info message')
5 logging.warning('warning message')
6 logging.error('error message')
7 logging.critical('critical message')

注意

如果指定名稱,則mylogger為root的子樹,如果定義兩個子樹名字相同,則實際生成一個子樹(根默認名稱為root)

1 logger1 = logging.getLogger('mylogger')
2 
3 logger2 = logging.getLogger('mylogger')

?

轉載于:https://www.cnblogs.com/webc/p/8509881.html

總結

以上是生活随笔為你收集整理的logging模块的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。