日誌類相關
解決問題:
logging模組,預設有乙個root收集器,收集warning級別及以上的日誌
# 建立日誌收集器物件
loger = logging.getlogger()
# 定義日誌收集器等級
loger.setlevel("level_str")
# 定義輸出到終端控制台
out_where = logging.streamhandler()
# 定義日誌輸出等級
out_where.setlevel('level_str')
# 定義日誌顯示格式
out_format = logging.formatter("%(asctime)s - [%(levelname)s] -[日誌資訊]: %(message)s")
out_where.setformatter(out_format)
# 將日誌收集器物件與輸出對接
loger.addhandler(out_where)
class mylog:
"""我的日誌類
"""def __init__(self):
# 定義名為case的日誌收集器物件
self.loger = logging.getlogger(do_config("log", "name"))
# 定義日誌收集器等級
self.loger.setlevel(do_config("log", "content_level"))
# 加個判斷避免一條用例寫兩次
if not self.loger.handlers:
# 定義輸出到終端
consle_handle = logging.streamhandler()
file_handle = concurrentrotatingfilehandler(filename=os.path.join(logs_path, do_config("log", "log_name")),
mode="a", maxbytes=do_config("log","maxbytes"),
backupcount=do_config("log", "count"),
encoding='utf-8')
# 定義日誌輸出出道等級
consle_handle.setlevel(do_config("log", "content_level"))
# consle_handle.setlevel("error")
file_handle.setlevel(do_config("log", "content_level"))
# 定義日誌顯示格式
consle_format = logging.formatter(do_config("log", "******"))
file_format = logging.formatter(do_config("log", "clear"))
consle_handle.setformatter(consle_format)
file_handle.setformatter(file_format)
self.loger.addhandler(consle_handle)
self.loger.addhandler(file_handle)
def out(self):
return self.loger
封裝中在日誌輸出時進行loger收集器物件是否存在判斷,避免一條日誌重複輸出記錄多次,為使日誌檔案能夠達到一定大小自動進行輪換儲存使用第三方模組concurrent_log_handler 中的concurrentrotatingfilehandler類。
日誌等級
notset < debug < info< warning< error< critical
日誌級別(level)
描述debug
除錯級別,一般用於問題的排查,日誌的資訊最為詳細
info
僅記錄普通的資訊,日誌資訊的詳細程度僅次於debug
warning
警告資訊,一般這類資訊不會影響程式的正常執行
error
錯誤資訊, 出現錯誤資訊時,程式一般已不能正常執行
critical
更嚴重的錯誤資訊,程式不能繼續執行
format引數中可能用到的格式化串:
引數注釋
%(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
字串形式的當前時間。預設格式是 「2019-10-11 00:00:00,896」。逗號後面的是毫秒
%(thread)d
執行緒id。可能沒有
%(threadname)s
執行緒名。可能沒有
%(process)d
程序id。可能沒有
%(message)s
使用者輸出的訊息
爛筆頭 知識回顧 配置檔案
一般配置檔案種類 ini,conf,yaml section 區域名 option value 選項 選項值 1 建立配置解析器物件 config configparser 2 指定讀取的配置檔名 config.read filename encoding utf 8 3 讀取資料 config.s...
識記 爛筆頭
2.開源資訊保安管理平台 ossim ossim明確定位為乙個整合解決方案,其目標並不是要開發乙個新的功能,而是利用豐富的 強大的各種程式 包括snort rrd nmap nessus以及ntop等開源系統安全軟體 在乙個保留他們原有功能和作用的開放式架構體系環境下,將他們整合起來。而ossim專...
MySQL爛筆頭記憶1
關係型資料庫 大型 oracle db2 等 中型 sql server mysql 等 小型 access 等。非關係型資料庫 memcached mongodb 和 redis 等。關係型資料庫,是一種建立在關係模型 數學模型 上的資料庫。表操作 create table if not exis...