Программирование

Вход в Python - ваше универсальное руководство

Вход в Python - ваше универсальное руководство

Ведение журнала - важный шаг, который должен выполнить программист во время разработки программного обеспечения. Это помогает разработчикам отслеживать события, происходящие во время выполнения программы, что может быть полезно для будущего процесса отладки. Если вы новичок или работаете над новым проектом, рекомендуется использовать ведение журнала для отслеживания потока кода и устранения ошибок.

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

Ведение журнала используется не только для отладки. Это также полезный процесс для сбора информации, сбора данных об использовании и многих других полезных задач. Это также одна из самых обычных функций для веб-разработчиков не только для обнаружения ошибок, но и для сбора пользовательских данных, таких как IP-адреса, которые можно использовать для дальнейшей бизнес-аналитики.

В Python большинство средств ведения журнала предоставляется Ведение журнала модуль представлен в стандартной библиотеке python, поэтому нам не нужно делать дополнительную настройку. Давайте посмотрим, как использовать его для входа в Python. Перед тем, как следовать этому руководству, необходимо, чтобы в вашей системе была установлена ​​последняя версия python. Если в вашей системе не установлен новейший Python, вы можете следовать нашему пошаговому руководству по установке и обновлению Python в Linux.

Модуль ведения журнала Python

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

импорт журнала

Теперь давайте посмотрим на демонстрацию того, как мы можем записывать некоторые сообщения в терминал. Просто скопируйте следующий код в свою любимую IDE Python и запустите.

импорт журнала регистрации.предупреждение ("Это предупреждение")

Запустив приведенный выше код, мы получим результат, как показано на изображении ниже.

Как видно из вывода, программа печатает предупреждающее сообщение. Модуль ведения журнала также имеет некоторые другие уровни ведения журнала, например информация, ошибка и т. д., которые облегчают нашу задачу. Обсудим их кратко на примерах.

Уровни ведения журнала Python

Многие уровни ведения журнала могут использоваться для регистрации различных сообщений на уровне серьезности. Уровни, которые предоставляет питон Ведение журнала модуль

Эти уровни показаны в порядке убывания их серьезности. Давайте посмотрим, как использовать эти уровни в нашей программе. Просто скопируйте следующий код и запустите в Python IDE.

импорт журнала регистрации.критическое ("Это критическое сообщение") ведение журнала.ошибка ("Это сообщение об ошибке") ведение журнала.предупреждение ("Это предупреждение") ведение журнала.info ("Это информационное сообщение") logging.debug («Это сообщение отладки»)

При запуске приведенного выше кода в среде IDE вывод, который показывает терминал, показан на изображении ниже.

Как вы можете видеть в выходных данных, сообщения DEBUG и INFO не печатаются в терминале, потому что модуль регистрации по умолчанию регистрирует только сообщения с уровнем безопасности выше или равным предупреждению. Для отображения INFO и DEBUG в терминале нам необходимо вручную изменить базовую конфигурацию логгера. Для этого мы можем использовать basicConfig (**kwargs) метод, предоставляемый модулем ведения журнала. Чтобы увидеть простую демонстрацию конфигурации, просто запустите следующий код в своей Python IDE.

импорт журнала регистрации.basicConfig (уровень = ведение журнала.Журнала отладки.критическое ("Это критическое сообщение") ведение журнала.ошибка ("Это сообщение об ошибке") ведение журнала.предупреждение ("Это предупреждение") ведение журнала.info ("Это информационное сообщение") logging.debug («Это сообщение отладки»)

В приведенном выше коде мы установили уровень Ведение журнала.ОТЛАЖИВАТЬ, что означает, что все уровни, которые выше уровня отладки, будут регистрироваться. Таким образом, в приведенном выше коде все сообщения будут регистрироваться, как показано на изображении ниже.

Давайте подробнее обсудим метод basicConfig () модуля регистрации.

Базовые конфигурации

Модуль регистрации предоставляет очень полезный метод basicConfig (** Kwargs), который используется для настройки конфигураций для регистрации данных. Некоторые из наиболее часто используемых параметров функции basicConfig ():

Давайте посмотрим, как мы можем использовать эти конфигурации в модуле ведения журнала Python, исследуя пример одного за другим.

Параметр level используется для установки уровня серьезности, чтобы увидеть практическую демонстрацию того, как его использовать, скопируйте приведенный ниже код в IDE python и запустите.

импорт журнала регистрации.basicConfig (уровень = ведение журнала.ИНФОРМАЦИЯ) ведение журнала.критическое ("Это критическое сообщение") ведение журнала.ошибка ("Это сообщение об ошибке") ведение журнала.предупреждение ("Это предупреждение") ведение журнала.info ("Это информационное сообщение") logging.debug («Это сообщение отладки»)

После запуска кода вы можете увидеть результат, как показано на изображении ниже. Как видите, сообщения, которые находятся над уровнями информации, печатаются, но сообщение на уровне отладки не печатается.

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

Вход в файл

Мы только видели, как войти в терминал, но вход в терминал не всегда полезен, поскольку мы не можем сохранить его для дальнейшего использования. Для лучшего решения мы можем распечатать журналы в текстовом файле, который мы сохраним и проанализируем позже. Журналы являются текстовыми и могут храниться в текстовом файле любого формата, но обычно принято сохранять журналы в файле с расширением .расширение журнала. Эти файлы известны как файлы журналов и повсеместно используются для хранения журналов программ, веб-приложений и другого программного обеспечения.

Мы можем сохранять логи в файл, настроив конфигурацию модуля логирования с помощью функции basicConfig (). Нам нужно указать имя файла, в котором мы хотим сохранить журналы, в параметре filename функции basicConfig (), после чего записи будут автоматически напечатаны в файле журнала, который мы укажем. Давайте посмотрим на практический пример, чтобы узнать, как это работает.

импорт журнала регистрации.basicConfig (уровень = ведение журнала.ИНФОРМАЦИЯ, filename = "mylog.log ") ведение журнала.критическое ("Это критическое сообщение") ведение журнала.ошибка ("Это сообщение об ошибке") ведение журнала.предупреждение ("Это предупреждение") ведение журнала.info ("Это информационное сообщение") logging.debug («Это сообщение отладки»)

Запустив код, вы увидите, что новый файл был создан в текущем рабочем каталоге с именем mylog.бревно. Открыв файл в текстовом редакторе, вы можете заметить, что журналы были сохранены в файл.

Если мы перезапустим код, мы увидим, что журнал будет добавлен в файл. Мы можем изменить это, указав параметр filemode в функции basiconfig (). По умолчанию параметр filemode имеет значение «a», что означает добавление. Но иногда мы также хотим удалить ранее зарегистрированные данные и записывать новые журналы только в файл. Для этого мы можем присвоить параметру filemode значение «w», что означает запись, и он удаляет все предыдущие данные в файле и записывает новые. Для демонстрации см. Следующий пример.

импорт журнала регистрации.basicConfig (уровень = ведение журнала.ИНФОРМАЦИЯ, filename = "mylog.log ", filemode =" w ") ведение журнала.критическое ("Это критическое сообщение") ведение журнала.ошибка ("Это сообщение об ошибке") ведение журнала.предупреждение ("Это предупреждение") ведение журнала.info ("Это информационное сообщение") logging.debug («Это сообщение отладки»)

При запуске приведенного выше кода вы можете заметить, что предыдущие журналы, присутствующие в файле, были удалены из файла, а новые журналы были добавлены. Каждый раз, когда мы запускаем код, новые журналы будут добавляться, а предыдущие будут удалены, что полезно, когда нам не нужны записи для дальнейшего использования.

Форматирование журналов

Мы видели, что выходные журналы имеют макет по умолчанию, но мы можем изменить формат, установив параметр формата функции basicConfig (). Давайте посмотрим на практическую демонстрацию, чтобы узнать, как мы можем использовать параметр формата в функции basicConfig (), чтобы изменить формат журнала.

импорт журнала регистрации.basicConfig (уровень = ведение журнала.INFO, format = "% (filename) s:% (levelname) s:% (message) s") ведение журнала.критическое ("Это критическое сообщение") ведение журнала.ошибка ("Это сообщение об ошибке") ведение журнала.предупреждение ("Это предупреждение") ведение журнала.info ("Это информационное сообщение") logging.debug («Это сообщение отладки»)

Вывод приведенного выше кода показан на изображении ниже.

Как вы можете видеть в выводе, имя файла также было отображено. Мы можем использовать параметр формата для указания многих других форматов, давайте обсудим некоторые из них.

% (asctime) s: Это используется для отображения удобочитаемого времени в журналах. Чтобы увидеть, как он показывает время, запустите следующий код в среде разработки Python.

импорт журнала регистрации.basicConfig (уровень = ведение журнала.INFO, format = "% (asctime) s:% (message) s") ведение журнала.предупреждение ("Это предупреждающее сообщение")

После запуска кода вы можете увидеть результат, как показано на изображении ниже.

% (создано) f: Это отобразит время создания журнала.

% (имя файла) s: Используется для отображения имени файла в сообщении журнала. Чтобы увидеть, как это работает, просто запустите следующий пример кода в своей среде разработки Python.

импорт журнала регистрации.basicConfig (уровень = ведение журнала.INFO, format = "% (asctime) s:% (filename) s:% (message) s") ведение журнала.предупреждение ("Это предупреждающее сообщение")

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

% (levelname) s: Используется для отображения названия используемого уровня, например WARNING, DEBUG и т. Д.

% (levelno) s: Используется для печати числового значения уровня, частью которого является сообщение.

% (льняной) d: Используется для печати номера текущей строки, в которой отображается сообщение. Это очень полезно, так как дает нам номер строки, в которой мы должны увидеть ошибку, что помогает процессу отладки. Давайте посмотрим на пример кода, чтобы увидеть, как использовать это для формирования вывода журналов.

импорт журнала Формат = '% (asctime) s:% (имя файла) s:% (белье) d:% (сообщение) s' журнал.basicConfig (уровень = ведение журнала.INFO, format = Format) ведение журнала.предупреждение ("Это предупреждающее сообщение")

Этот код также напечатает номер строки, как показано на изображении ниже.

%(Сообщения: Он используется для отображения сообщения, которое мы зарегистрировали.

% (путь) s: Используется для отображения полного пути к файлу исходного кода.

% (процесс) d: Это отобразит идентификатор процесса, если он доступен.

% (имя процесса) s: Это отобразит имя процесса, если оно доступно.

% (поток) d: Это отобразит идентификатор потока, если он доступен.

% (threadName) s: Это отобразит имя потока, если оно доступно.

Регистрация переменных данных

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

Например, см. Приведенный ниже код; вы можете скопировать код и запустить его в IDE Python.

import logging var_message = "внутренняя ошибка" ведение журнала.предупреждение ("Сервер остановлен из-за% s", var_message)

После запуска кода вы увидите результат, как показано на изображении ниже. Как вы можете видеть на картинке, значение, хранящееся в переменной, также печатается на экране.

Мы также можем отображать переменные в журналах с помощью f-строк, которые представлены в python 3.6. Но чтобы использовать f-строки, вам понадобится python 3.6 или более поздняя версия установлена ​​в вашей системе. Вы можете проверить, какая версия Python установлена ​​в вашей системе, выполнив следующую команду в терминале.

python --version # для python 2 в Linux python3 --version # для python 3 в Linux

Это напечатает версию python, которую вы используете в своей системе. Для повышения производительности рекомендуется использовать последнюю версию python; вы можете увидеть наше руководство по обновлению вашей версии Python в Linux.

Чтобы отформатировать строки с помощью f-строк в Python, нам нужно использовать следующий синтаксис кода. Вы можете скопировать и запустить код в своей любимой среде IDE на Python.

import logging var_message = "внутренняя ошибка" ведение журнала.предупреждение (f "Сервер остановлен из-за var_message")

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

Регистрация трассировок стека

Модуль регистрации также можно использовать для записи трассировок стека. Трассировки стека - это сообщения об исключениях, которые выдаются при возникновении ошибки в программе. Мы можем зафиксировать исключение, установив для параметра exc_info значение True при вызове функции ведения журнала. Этот параметр полезен, поскольку мы можем регистрировать полное сообщение об исключении вместе с нашим сообщением об ошибке в файле или на экране терминала.

Чтобы получить практическую демонстрацию, чтобы узнать, как мы можем получить трассировку стека, скопируйте следующий код в свою среду IDE python и запустите.

попытка импорта журнала: a = 1/0, кроме Exception as e: logging.error («Произошла ошибка», exc_info = True)

При запуске кода исключение будет зарегистрировано в терминале. Вы увидите вывод кода, как показано на изображении ниже. Вы также можете записать исключение в файл, используя параметр filename в методе basicConfig (), как мы обсуждали выше.

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

Объекты регистратора

Модуль ведения журнала также предоставляет несколько полезных классов, которые можно использовать для лучшего ведения журнала, в основном для более широкого приложения. Давайте посмотрим на некоторые из наиболее часто используемых классов модуля регистрации, а также на то, что и как они работают.

Если вам нужна полная информация о том, как использовать эти классы, вы можете обратиться к официальной документации модуля ведения журнала python.

Заключение

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

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

Как изменить левую и правую кнопки мыши на ПК с Windows 10
Совершенно нормально, что все устройства компьютерной мыши эргономичны для правшей. Но есть мышиные устройства, специально разработанные для левшей ил...
Эмуляция щелчков мыши с помощью мыши без щелчка в Windows 10
Использование мыши или клавиатуры в неправильной позе или чрезмерное использование может привести к множеству проблем со здоровьем, включая растяжение...
Добавьте жесты мыши в Windows 10 с помощью этих бесплатных инструментов
В последние годы компьютеры и операционные системы сильно эволюционировали. Было время, когда пользователям приходилось использовать команды для навиг...