【发布时间】:2017-07-06 05:49:58
【问题描述】:
我正在尝试从日志目录中解析多个日志文件,以在列表中搜索任意数量的字符串以及服务器名称。我觉得我已经尝试了一百万种不同的选项,并且只使用一个日志文件就可以正常工作。但是当我尝试浏览目录中的所有日志文件时,我似乎无处可去。
if args.f:
logs = args.f
else:
try:
logs = glob("/var/opt/cray/log/p0-current/*")
except IndexError:
print "Something is wrong. p0-current is not available."
sys.exit(1)
valid_errors = ["error", "nmi", "CATERR"]
logList = []
for log in logs:
logList.append(log)
#theLog = open("logList")
#logFile = log.readlines()
#logFile.close()
#printList = []
#for line in logFile:
# if (valid_errors in line):
# printList.append(line)
#
#for item in printList:
# print item
# with open("log", "r") as tmp_log:
# open_log = tmp_log.readlines()
# for line in open_log:
# for down_nodes in open_log:
# if valid_errors in open_log:
# print valid_errors
down_nodes 是一个预先填充的列表,位于脚本的上方,其中包含标记为关闭的服务器列表。
注释掉了一些我一直在努力的各种尝试。
logList = []
for log in logs:
logList.append(log)
我认为这可能是将每个单独的日志文件放在一个列表中的方法,然后遍历这个列表并使用 open() 后跟 readlines() 但我在这里缺少某种逻辑..也许我我的想法不正确。
我真的可以在这里做一些指针。
谢谢。
【问题讨论】:
-
glob 返回的日志已经是一个列表。
标签: python linux python-2.7 logging glob