python
June 28, 2023
Модуль логирования.
Задача: требуется из всех скриптов добавлять различные данные в лог файл.
Все скрипты будут использовать модуль логирования и вносить свои записи в систему регистрации событий.
#path/name mod/logging.py import os from datetime import datetime def write_log(log_entry): log_file_path = 'log/pylog.txt' # Получаем путь к директории log_directory = os.path.dirname(log_file_path) # Проверяем, существует ли директория if not os.path.isdir(log_directory): # Создаем директорию, если она не существует os.makedirs(log_directory) # Проверяем, существует ли лог-файл if not os.path.isfile(log_file_path): # Создаем лог-файл с кодировкой UTF-8 with open(log_file_path, 'w', encoding='utf-8') as new_file: pass # Создаем пустой файл with open(log_file_path, 'r+', encoding='utf-8') as log_file: current_logs = log_file.read() timestamp = datetime.now().strftime("%Y-%m-%d %H:%M:%S") log_entry_with_timestamp = f"{timestamp} - {log_entry}\n" log_file.seek(0, 0) log_file.write(log_entry_with_timestamp + current_logs)
В скриптах указываем, что нужно записать в лог.
''' Вызываем модуль регистрации (логирования). И вносим запись "Проверка логирования" ''' from mod.logging import write_log # Вызов функции write_log с передачей значения log_entry log_entry = "Проверка логирования" write_log(log_entry)
В результате выполнения программы получим директорию/файл log/pylog.txt с регистрацией записи:
Примечание
Строковое форматирование с помощью оператора %:
variable1 = 10 variable2 = "hello" log_entry = "Variable 1: %d, Variable 2: %s" % (variable1, variable2)
Интерполяция строк с использованием символа f перед строкой и фигурных скобок для обозначения переменных:
python variable1 = 10 variable2 = "hello" log_entry = f"Variable 1: {variable1}, Variable 2: {variable2}"