|
环境(Python 2.7)
[pre]
#-*-coding:utf-8-*-
import time
#mysql log位置
file = '/Applications/XAMPP/xamppfiles/var/mysql/ADog.log'
#去重函数
def removal(string):
log_list_new = []
num = string[:2]
log_list = string.split(num)
for i in log_list:
i = i.rstrip('\t').rstrip()
log_list_new.append(i)
log_list_new = list(set(log_list_new))
string = num + ' '
for j in log_list_new:
string += j
return string
#获取当前时间函数
def GetNowTime():
return time.strftime("%Y-%m-%d %H:%M:%S",time.localtime(time.time()))
#监控日志文件函数
def monitorLog(logFile):
print '监控的日志文件 是%s' % logFile
print '当前时间 是%s' % GetNowTime()
with open(file , 'r') as fp:
fp.seek(0,2)
try:
while True:
last_pos = fp.tell()
line = fp.readline().strip()
#这里只读取预编译和执行语句
if ('Prepare' in line) or ('Execute' in line) or ('Query' in line):
print removal(line)
print '--------------------------------------------------------------------------------------------------------------------'
except KeyboardInterrupt:
print 'exit...'
if __name__ == '__main__':
monitorLog(file)
#-*-coding:utf-8-*-
import time
#mysql log位置
file = '/Applications/XAMPP/xamppfiles/var/mysql/ADog.log'
#去重函数
def removal(string):
log_list_new = []
num = string[:2]
log_list = string.split(num)
for i in log_list:
i = i.rstrip('\t').rstrip()
log_list_new.append(i)
log_list_new = list(set(log_list_new))
string = num + ' '
for j in log_list_new:
string += j
return string
#获取当前时间函数
def GetNowTime():
return time.strftime("%Y-%m-%d %H:%M:%S",time.localtime(time.time()))
#监控日志文件函数
def monitorLog(logFile):
print '监控的日志文件 是%s' % logFile
print '当前时间 是%s' % GetNowTime()
with open(file , 'r') as fp:
fp.seek(0,2)
try:
while True:
last_pos = fp.tell()
line = fp.readline().strip()
#这里只读取预编译和执行语句
if ('Prepare' in line) or ('Execute' in line) or ('Query' in line):
print removal(line)
print '--------------------------------------------------------------------------------------------------------------------'
except KeyboardInterrupt:
print 'exit...'
if __name__ == '__main__':
monitorLog(file)
[/pre]
这里需要说明下测试时候用的是某最新款cms,典型的TP5框架,所以通篇都是预编译,因此这里只选取了预编译相关的执行语句,后来再测试时候发现最普通的query语句没加入选取规则,不知道其他还有没有遗漏的,这里可以根据需要自行添加~
下面放出效果图(感觉还是有点复杂,,可能是打开了首页导致加载了过多的sql语句吧)
|
|
有志者,事竟成,破釜沉舟,百二秦关终属楚. 苦心人,天不负, 卧薪尝胆 ,三千越甲可吞吴
|