在機械裡面爬不出來的研發。。。。第一次寫完整的**,第一次寫帖子。
ps:第一次看見日誌滿螢幕跑的數字,感覺挺新奇。。。有一種錯覺,我是不是不用幹機械了,哈哈
需求:寫個簡單的程式,實時監控日誌的關鍵字,出現「初始化」、「傳送失敗」等異常的字眼,就把這個日誌記錄下來,並統計整個時間段發生的次數。
日誌用的是securectr工具,能夠自動加時間戳,並儲存log格式檔案。
如下是**實現:
1、定義初始值
import datetime
import time
import re
a =0
# 失敗次數
b =0
# 重啟次數
count1 =
0# 當前行數初始值`
2、開啟日誌log檔案,讀取日誌內容
def
file_open
(file_paths)
:# 函式開啟文件,讀取行數
global log # 全域性變數 行數
global count # 全域性變數 當前行數
with
open
(file_paths, mode=
'r',encoding=
'utf-8'
)as f:
# 開啟指定位置的文件
log = f.readlines(
)# 按行讀取
count =
len(log)
# 讀取總行數
print
(count)
3、逐行匹配關鍵字,如果匹配上則儲存當前行日誌到「error-file」中
def
key():
# 按行匹配,匹配到「傳送失敗」,就匹配該行的文字
global count1, a, b
global key1,key2
for lens in
range
(count1,count)
:# 上一次結束的行數開始,到總行數
lines1=log[count1]
key1 = re.findall(key1, lines1, re.m)
key2 = re.findall(key2, lines1, re.m)
if key1:
# 先匹配key1 關鍵字
a=a+
1print
("第"
,a,key1)
# 按行匹配,匹配到「key1」,記錄第幾次
with
open
(error_file_path, mode=
'a', encoding=
'utf-8'
)as error_file:
error_file.write(log[count1]
)# 記錄到錯誤日誌檔案中
elif key2:
# 再匹配key2 關鍵字
b=b+
1print
("第"
,b,key2)
# 按行匹配,匹配到「key2」
with
open
(error_file_path, mode=
'a', encoding=
'utf-8'
)as error_file:
error_file.write(log[count1]
)# 記錄到錯誤日誌檔案中
else
:pass
count1 = count1+
1# 下次開始的行數
4、執行之前,配置log格式日誌的檔案路徑,並定義error_file的儲存路徑。(如果就自己用,可以直接寫死,不用每次配置。這裡想給其他人電腦用,所以加了這個)
# 輸入檔案路徑和檔名
file_path =
input
(print
("輸入檔案路徑(包含檔名):"))
file_name =
input
(print
("請輸入日誌檔名:"))
file_paths = file_path +
'\\'
+ file_name # 日誌路徑生成
error_file_name =
"error_file.log"
# 錯誤日誌檔名
error_file_path = file_path +
'\\'
+ error_file_name # 錯誤日誌路徑
5、主程式,先配置需要監控的關鍵字,這裡只定義了兩個。
# 輸入需要監控關鍵字
key1 =
input
(print
("輸入監控關鍵字1:"))
key2 =
input
(print
("輸入監控關鍵字2:"))
while
true
:# 讓他一直迴圈
file_open(file_paths)
# 開啟文件,日誌儲存路徑
key(
)print
("總計"
,key1,a,
"次;"
," 總計"
,key2,b,
"次;"
) time.sleep(10)
# 間隔10秒重新整理檢測一次
浮點異常情況(VX FP TASK)
總結 在生成任務時,如果在任務中使用浮點計算,一定需要將任務的標誌vx fp task設定,否則將會出錯,主要是在其他任務中出現0 0錯誤 產生原因 當沒有設定浮點計算標識vx fp task時,在進入任務時沒有儲存浮點暫存器值,這樣在任務中進行浮點運算將破壞了浮點暫存器的內容,而在任務退出後,浮點...
python 異常情況處理
def ceshi number input 請輸入乙個數字 number int number try 裡面是有可能有異常的 try result 10 number except 是異常捕獲,多個except也只能執行乙個 except valueerror print 請輸入整數 except...
fwrite flock異常情況測試
更名操作 兩個程序都開啟檔案之後,乙個鎖住 iotest 乙個等待鎖 iotest2 此時修改檔案iotest.log的名字 更名操作 iotest程序開啟檔案並鎖住檔案,iotest2不開啟檔案,此時修改檔案iotest.log的名字 刪除操作 兩個程序都開啟檔案,乙個程序鎖住 iotest 乙個...