python监控windows日志_Python 监控日志的简单示例
這篇文章主要為大家詳細(xì)介紹了Python 監(jiān)控日志的簡單示例,具有一定的參考價值,可以用來參考一下。
對python這個高級語言感興趣的小伙伴,下面一起跟隨512筆記的小編兩巴掌來看看吧!
一個簡易的日志監(jiān)控的腳本,功能如下:
1.windows環(huán)境
2.當(dāng)匹配日志關(guān)鍵字時會發(fā)出聲音,匹配的關(guān)鍵字不同,播放的聲音不同
3.能做到實(shí)時響應(yīng)
注意:是在win環(huán)境下哦
直接上代碼吧
# @param Python監(jiān)控日志程序
# @author 512筆記|512PiC.com
#!/usr/bin/env python
# encoding: utf-8
"""
MonitorLog.py
Usage: MonitorLog.py ...
Monitor the log file
-f log file
-h help info
python MonitorLog.py -f C:\monitor.log
"""
import sys
import os
import getopt
import subprocess
import time
import codecs
import winsound
ABSPATH = os.path.dirname(os.path.abspath(__file__))
MONITERCONF = 'moniter_keyword.txt' #utf8 file
def main():
try:
opts, args = getopt.getopt(sys.argv[1:], 'hf:')
except getopt.GetoptError, err:
print str(err)
print __doc__
return 1
path = ''
for k, v in opts:
if k == '-f':
path = v
elif k == '-h':
print __doc__
return 0
if not (path and os.path.exists(path)):
print 'Invalid path: %s' % path
print __doc__
return 2
#命令行元組
cmd = ('tail', '-f', path)
print ' '.join(cmd)
output = subprocess.Popen(cmd, stdout=subprocess.PIPE)
keywordMap = {}
#加載監(jiān)控的關(guān)鍵字信息
with codecs.open(os.path.join(ABSPATH, MONITERCONF), 'r', 'utf8') as f:
lines = f.readlines()
for line in lines:
line = line.strip()
if not line:
continue
keyword, wav = line.strip().split(':')
keywordMap[keyword] = wav
while True:
line = output.stdout.readline()
#process code,得到輸出信息后的處理代碼
if not line:
time.sleep(0.01)
continue
line = line.strip().decode('utf8')
print line
for keyword in keywordMap:
if line.find(keyword) > -1:
winsound.PlaySound(keywordMap[keyword],
winsound.SND_NODEFAULT)
#time.sleep(0.01)
return 0
if __name__ == '__main__':
sys.exit(main())
# End www_512pic_com
注:關(guān)于Python 監(jiān)控日志的簡單示例的內(nèi)容就先介紹到這里,更多相關(guān)文章的可以留意512筆記的其他信息。
關(guān)鍵詞:日志
總結(jié)
以上是生活随笔為你收集整理的python监控windows日志_Python 监控日志的简单示例的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 消息已读未读的模型设计_阿里云技术专家分
- 下一篇: python matpoltlib绘制动