Python - удаление журналов с отметкой времени - PullRequest
0 голосов
/ 13 июня 2018

В процессе создания системы журналов для скрипта Python, который я создал, я хочу очищать данные еженедельно, но я не уверен, что лучший способ продолжить.Ниже приведен код, который я создаю все, что мне нужно, чтобы фактически регистрировать элементы.

import logging
logger = logging.getLogger('Python Script Logger')
logger.setLevel(logging.INFO)

# Create a file handler
handler = logging.FileHandler('My_Test_Log.log')
handler.setLevel(logging.INFO)

# Create a logging format
formatter = logging.Formatter('%(asctime)s - Line: %(lineno)d - %(levelname)s - %(message)s')
handler.setFormatter(formatter)

#add the handlers to the logger
logger.addHandler(handler)
logger.info('-----------------------------')
logger.info('Creating New Entry')

У меня есть что-то вроде этого, но ни одна из строк не удаляется, когда я вызываю функцию.Логика в том, что он открывает старый файл журнала, открывает новый файл и записывает в новый любые строки, которые не содержат метку времени, которую я хочу удалить.

def clear_logs():
    date_array = ['2018-06-12']
    with open('My_Test_log.log') as old_file, open('My_New_Test.log', 'w') as new_file:
        for line in old_file:
            if not any(date in line for date in date_array):
                new_file.write(line)

Некоторые строки в моем файле журнала выглядят так:

2018-06-12 15:55:41,554 - Line:144 - ERROR - Error inserting row
2018-06-12 15:55:41,603 - Line:144 - ERROR - Error inserting row
2018-06-13 08:58:54,492 - Line:30 - INFO - -----------------------------
2018-06-13 08:58:54,493 - Line:31 - INFO - Creating New Entry
2018-06-13 08:58:54,493 - Line:205 - WARNING - Invalid argument provided

1 Ответ

0 голосов
/ 15 июня 2018

Отвечая с тем, что я нашел для работы.Основная идея заключается в том, чтобы открыть файл, прочитать, сохранить, а затем закрыть.Затем снова откройте как опцию записи и найдите строки текста, которые вы ищете в строке, и удалите, если это было у вас.Это очистит любую строку, которую вы хотите удалить.

my_file = open(log_file, "r")
lines = my_file.readlines()
my_file.close()

my_file = open(log_file, "w")
my_array= ['fill','this','with','what','you','wish','to','remove']

for line in lines:
    for item in my_array:
        if item in line:
            pass
        else:
            my_file.write(line)
my_file.close()
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...