爛筆頭 知識回顧 日誌

2021-09-28 13:29:04 字數 2859 閱讀 2378

日誌類相關

解決問題:

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...