#python-3.x #logging #time #difference
#python-3.x #ведение журнала #время #разница
Вопрос:
У меня есть файл с именем info.log
в этом файле полно таких строк :
10-30-2020 09:20:53;CLUSTER OK; Service cluster; 1 ok, 0 warning, 0 unknown, 0 critical;;;;;;;
10-30-2020 09:20:53;CLUSTER OK; Service cluster; 1 ok, 0 warning, 0 unknown, 0 critical;;;;;;;
10-30-2020 09:20:54;CLUSTER OK; Service cluster; 1 ok, 0 warning, 0 unknown, 0 critical;;;;;;;
10-30-2020 09:20:54;CLUSTER OK; Service cluster; 1 ok, 0 warning, 0 unknown, 0 critical;;;;;;;
10-30-2020 09:20:54;CLUSTER OK; Service cluster; 1 ok, 0 warning, 0 unknown, 0 critical;;;;;;;
10-30-2020 09:20:54;CLUSTER OK; Service cluster; 1 ok, 0 warning, 0 unknown, 0 critical;;;;;;;
10-30-2020 09:20:55;CLUSTER CRITICAL Computer 345; 2 ok, 0 warning, 0 unknown, 0 critical;;;;;;;
10-30-2020 09:20:55;CLUSTER OK; Service cluster; 1 ok, 0 warning, 0 unknown, 0 critical;;;;;;;
10-30-2020 10:20:56;CLUSTER OK Computer 345; 2 ok, 0 warning, 0 unknown, 0 critical;;;;;;;
10-30-2020 09:20:56;CLUSTER OK; Service cluster; 1 ok, 0 warning, 0 unknown, 0 critical;;;;;;;
10-30-2020 09:20:56;CLUSTER OK; Service cluster; 1 ok, 0 warning, 0 unknown, 0 critical;;;;;;;
10-30-2020 09:20:56;CLUSTER OK; Service cluster; 1 ok, 0 warning, 0 unknown, 0 critical;;;;;;;
10-30-2020 09:20:56;CLUSTER OK; Service cluster; 1 ok, 0 warning, 0 unknown, 0 critical;;;;;;;
Мне нужно проанализировать только текущий месяц.
Мне нужно определить, когда компьютер становится критическим, а затем ОК, и найти разницу во времени.
Здесь, например, разница между :
10-30-2020 09:20:55 и 10-30-2020 10:20:56
итак, здесь результат равен 1h00,1s.
наконец, мне нужно заполнить файл с текущим временем простоя за месяц следующим образом :
Время простоя компьютера 345: 1 час 001 минута 1 сек (не обязательно указывать в письме час и минуты)
Я попробовал это сейчас :
logfile = "ref_cluster.log.csv"
def mainloop():
f = open(logfile, 'r')
row_list = []
for row in f:
if "*" in row:
row = str(row.strip(";"))
row_list.append(row)
else:
row_list.append(row.split(";"))
f.close()
critical_list = []
for i in row_list:
if i[1] == "CLUSTER CRITICAL":
critical_list.append(i)
print(critical_list)
mainloop()
Комментарии:
1. Я бы начал с создания фрейма данных из ваших файловых данных с помощью pandas. Как только у вас есть данные в Dataframe, pandas предлагает несколько методов, которые упростят анализ.
2. Я изменил дату и время в журналах :
3. Вы импортировали журнал в фрейм данных? Как выглядит фрейм данных?
4. Кроме того, теперь вы можете выбирать строки для определенного месяца