日誌,序列反序列和正規表示式

2022-05-18 07:47:18 字數 2448 閱讀 6601

logging模組有兩個處理方式, 乙個是直接使用logging處理, 另乙個是生成乙個物件,  用物件來處理

匯入logging模組

使用logging.basicconfig來設定配置資訊

引數level設定日誌級別

引數format可以設定一條日誌資訊的列印格式

引數datefmt可以設定時間的顯示格式

引數filename可以設定將日誌輸出成檔案的檔案名字, 該檔案指定之後控制台就不顯示了

引數filemode可以設定寫入檔案的寫入模式

寫入日誌資訊的可以使用

logging.日誌級別(日誌資訊)

其中日誌界別的順序是: debug < info < warning < error < critical

使用**如下

import logging

myformat = '[ %(levelname)s : %(asctime)s ] %(pathname)s[ %(lineno)d ] == > %(message)s'

mydateformat = '%y-%m-%d %x'

logging.basicconfig(level=logging.info, format=myformat, datefmt=mydateformat, filename='log', filemode='a')

logging.debug('debug message')

logging.info('info message')

logging.warning('warning message')

logging.error('error message')

logging.critical('critical message')

獲取logging物件

logging.getlogger()

可以指定名字, 預設為root

設定檔案或者螢幕輸出物件

logging.filehandler(檔案名字, mode=讀寫模式, encoding=編碼, delay=布林值)

logging.streamhandler()

設定日誌等級

logging物件.setlevel(等級)

設定列印格式

filehandler物件.setformatter(格式)

streamhandler物件.setformatter(格式)

繫結handler物件給logging物件

logging物件.addhandler( 檔案或者流handler物件 )

具體使用方法

import logging

log = logging.getlogger()

fh = logging.filehandler('log2')

sh = logging.streamhandler()

log.setlevel(logging.debug)

myformat = '[ %(levelname)s : %(asctime)s ] %(pathname)s[ %(lineno)d ] == > %(message)s'

formatter = logging.formatter(myformat)

fh.setformatter(formatter)

sh.setformatter(formatter)

log.addhandler(fh)

log.addhandler(sh)

logging.debug('debug message')

可以通過json模組來講資料轉化為json格式資料, 並且儲存

還可以直接讀取檔案並將高json內容轉化為對應的python格式資料

將資料轉為json字串

json.dumps(需要轉的資料)

將json資料轉化為物件的python資料

json.loads( json字串 )

其中對應的有dunp()和load()方法, 這倆有兩引數, 用於直接開啟檔案控制代碼來讀或者寫

具體是用例項如下

import json

dic=

data=json.dumps(dic)

# ''

f=open('json','w')

f.write(data)

f.close()

f=open('json')

new_data=json.loads(f.read())

#

使用dunp或者load方法的處理如下

import json

dic=

json.dump(dic, open('json',"w"))

newdata = json.load(open('json'))

#

正規表示式參見全面的解析

我的總結

sed和awk序列之正規表示式

如果為正規表示式的第乙個字元,匹配行的開始 如果是正規表示式的最後乙個字元,匹配行的結尾 匹配前面某個範圍內單個字元出現的次數 匹配前面的正規表示式的一次或多次出現 匹配前面的正規表示式0次或1次匹配 指定可匹配前面的或後面的正規表示式 對正則式進行分組 匹配前面某個範圍內的單個字元出現的次數 過程...

日誌正規表示式

一 簡單的日期判斷 yyyy mm dd d d 1 d 二 演化的日期判斷 yyyy mm dd yy mm dd d d d 3 d d年 d 月 d日 三 加入閏年的判斷的 例項 1 6 9 2 9 d d 0?13578 1 02 0?1 9 12 d 3 01 1 6 9 2 9 d d ...

正規表示式清理日誌

字段提取中正規表示式的使用 提取日誌中的資訊格式 欄位名稱 匹配具體資訊的正規表示式 日誌樣例 78 2019 08 21t17 10 01.461970 08 00 localhost crond root cmd usr lib64 sa sa1 1 1 正規表示式 d s s s s s s ...