Для добавления даты и времени в записи логов на Python можно использовать модуль logging и настроить форматтер.
Пример:
import logging
# Создаем логгер
logger = logging.getLogger(__name__)
logger.setLevel(logging.INFO)
# Создаем обработчик (handler) для записи в файл или консоль
handler = logging.StreamHandler() # Или FileHandler('logfile.log')
# Создаем форматтер с информацией о дате и времени
formatter = logging.Formatter('%(asctime)s - %(levelname)s - %(message)s', datefmt='%Y-%m-%d %H:%M:%S')
# Устанавливаем форматтер для обработчика
handler.setFormatter(formatter)
# Добавляем обработчик к логгеру
logger.addHandler(handler)
# Пример использования
logger.info('Сообщение информационного уровня')
logger.warning('Предупреждение!')
В примере выше, %(asctime)s в формате сообщений будет заменен на текущую дату и время, отформатированные в соответствии с datefmt='%Y-%m-%d %H:%M:%S'. logging.StreamHandler выводит логи в консоль, а logging.FileHandler - в файл.
Чтобы добавить дату и время в записи логов в Python, можно использовать модуль logging и настроить форматтер (Formatter). Вот как это можно сделать:
logging с форматированием даты и времениИмпортируйте модуль logging:
import logging
Настройте конфигурацию логгера: Самый простой способ – это базовая конфигурация, но в реальных проектах рекомендуется более детальная настройка.
logging.basicConfig(
level=logging.INFO,
format='%(asctime)s - %(levelname)s - %(message)s',
datefmt='%Y-%m-%d %H:%M:%S'
)
level=logging.INFO: Устанавливает уровень логирования (например, INFO, DEBUG, WARNING, ERROR, CRITICAL). Будут логироваться только сообщения с этим уровнем или более высоким.format='%(asctime)s - %(levelname)s - %(message)s': Определяет формат записи лога. %(asctime)s – время записи, %(levelname)s – уровень лога, %(message)s – само сообщение.datefmt='%Y-%m-%d %H:%M:%S': Определяет формат даты и времени. %Y – год, %m – месяц, %d – день, %H – час, %M – минута, %S – секунда. Можно использовать различные комбинации этих директив. Полный список можно найти в документации Python для time.strftime().Используйте логгер для записи сообщений:
logger = logging.getLogger(__name__)
logger.info('Это информационное сообщение')
logger.warning('Это предупреждение')
logger.error('Это сообщение об ошибке')
import logging
# Настройка логгера
logging.basicConfig(
level=logging.INFO,
format='%(asctime)s - %(levelname)s - %(module)s - %(funcName)s - %(message)s',
datefmt='%Y-%m-%d %H:%M:%S'
)
# Получаем логгер
logger = logging.getLogger(__name__)
def my_function():
logger.info('Функция начала работу')
try:
result = 10 / 0
except ZeroDivisionError:
logger.exception('Произошла ошибка деления на ноль')
logger.info('Функция завершила работу')
if __name__ == '__main__':
logger.info('Программа начала работу')
my_function()
logger.info('Программа завершила работу')
Вывод в консоль будет примерно таким:
2023-10-27 14:30:00 - INFO - __main__ - <module> - Программа начала работу
2023-10-27 14:30:00 - INFO - __main__ - my_function - Функция начала работу
2023-10-27 14:30:00 - ERROR - __main__ - my_function - Произошла ошибка деления на ноль
Traceback (most recent call last):
File "<stdin>", line 11, in my_function
ZeroDivisionError: division by zero
2023-10-27 14:30:00 - INFO - __main__ - my_function - Функция завершила работу
2023-10-27 14:30:00 - INFO - __main__ - <module> - Программа завершила работу
FileHandler к логгеру.logger.exception() для логирования информации об исключениях, включая трассировку стека.В заключение, использование модуля logging с правильной настройкой формата даты и времени – важная часть разработки robust и отлаживаемых приложений на Python.