日志搜索,将第一个特定条目打印到日志文件中



问题:我试图在syslog(Linux服务器)中搜索特定事件的第一个条目,然后执行命令(未来开发),然后记录信息。我不确定我是否以正确的方式处理了这个问题。

问题:不确定如何在找到的第一个有效条目上退出循环。

import os
import commands
from time import strftime
file = "server.log.1" # sample log
nlogFile =("/home/nsoper/log/logfile_%s.txt") %(strftime("%Y_%m_%d_ %H_%M_%S")) # create logfile
caption="SN" # sample serach
condition2 = "java error"

F=open(file, 'r')
nF=open(nlogFile, 'a')
nF.write("output for results search:nn")

print(strftime("%Y_%m_%d_ %H_%M_%S"))

for line in F:
       for item in line.split("n"):
                 if caption in item:
                        line1=item.strip()
                        if condition2 in line1:
                                print line1.strip()
                                nF.write(line1.strip()+"n")
                                #command execute

nF.close()
F.close()

以下是我发现的使用python 2.4(Linux prod-env服务器。无法升级python。)实现这一目标的最佳方法。在这种特定情况下,我想获取最后一行,然后使用另一个循环进行处理。

index=[]
con1 = "First Condition"
con2 = "Second Condition"
file=open("log.txt",'r')
print("Reading.. "+ file)
for line in F:
    for item in line.split("n"):
            if con1 in item:
                    con1Line=item.strip()
                    if con2 in con1Line:
                            index.append(con1Line)
F.close()
l=index[-1]
print(l)
# do stuff now will value l
del index[:]

最新更新