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

Влизане в Python - Вашето ръководство на едно гише

Влизане в Python - Вашето ръководство на едно гише

Регистрацията е решаваща стъпка, която трябва да се извърши от програмист по време на разработването на софтуер. Той помага на разработчиците да проследяват събития, случващи се по време на изпълнението на програма, което може да бъде полезно за бъдещия процес на отстраняване на грешки. Ако сте нов обучаем или работите по нов проект, е добра практика да използвате регистриране за проследяване на потока на кода и за решаване на грешки.

Докато пишем кратки програми, повечето от нас обикновено игнорират регистрирането, но когато програмата стане сложна, тогава е важна и полезна стъпка от използването на регистриране, за да се поправят грешките, които пречат на софтуера да работи гладко. Регистрацията не е нищо повече от записване на събитията в софтуера в лог файл или извеждане в терминала.

Регистрацията не се използва само за отстраняване на грешки. Това също е полезен процес за събиране на информация, събиране на данни за употреба и много други полезни задачи. Това е и една от най-обичайните функции за уеб разработчиците не само за откриване на грешки, но и за събиране на потребителски данни като IP адреси, които могат да се използват за по-нататъшен бизнес анализ.

В Python повечето съоръжения за регистриране се предоставят от сеч модул, представен в стандартната библиотека на python, така че не е нужно да правим допълнителна конфигурация. Нека да видим как да го използваме за влизане в python. Преди да следвате този урок, е необходимо да имате инсталирана най-новата версия на python във вашата система. Ако нямате инсталиран най-новия python във вашата система, можете да следвате нашето ръководство стъпка по стъпка за инсталиране и актуализиране на python в Linux.

Модулът за регистриране на Python

Модулът за регистриране на python е една от най-използваните библиотеки за регистриране в python. Най-хубавата част е, че се предлага с предварително инсталирана стандартна библиотека на python, така че не е нужно да правим никаква конфигурация или инсталация. Модулът за регистриране е здрав и ясен, което означава, че е полезен както за начинаещи, така и за предприятия. За да използваме модула за регистриране в python, трябва да го импортираме в нашата програма, както го правя в следващия ред код.

импортиране на регистрация

Сега нека видим демонстрация за това как можем да регистрираме някои съобщения в терминала. Просто копирайте следния код в любимата си python IDE и стартирайте.

импортиране на регистрация.Предупреждение ("Това е предупреждение")

При изпълнение на горния код ще получим изхода, както е показано на изображението по-долу.

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

Нива на регистриране на Python

Много нива на регистриране могат да се използват за регистриране на различни съобщения на ниво на сериозност. Нивата, които се предоставят от python сеч модул са

Тези нива са показани в низходящ ред на тяхната тежест. Нека да видим как да използваме тези нива в нашата програма. Просто копирайте следния код и стартирайте в Python IDE.

импортиране на регистрация.критично ("Това е критично съобщение") регистриране.регистрация на грешка („Това е съобщение за грешка“).предупреждение ("Това е предупредително съобщение") регистриране.информация ("Това е информационно съобщение") регистриране.debug ("Това е съобщение за отстраняване на грешки")

При изпълнение на горния код в IDE изходът, който терминалът показва, е показан на изображението по-долу.

Както можете да видите в изхода, съобщенията DEBUG и INFO не се отпечатват в терминала, тъй като модулът за регистриране по подразбиране регистрира само съобщенията с ниво на защита, по-високо или равно на предупреждението. За да покажем INFO и DEBUG в терминала, трябва ръчно да променим основната конфигурация на регистратора. За целта можем да използваме basicConfig (**кварги) метод, предоставен от модула за регистриране. За да видите проста демонстрация на конфигурация, просто изпълнете следния код във вашата Python IDE.

импортиране на регистрация.basicConfig (ниво = регистриране.DEBUG) регистрация.критично ("Това е критично съобщение") регистриране.регистрация на грешка („Това е съобщение за грешка“).предупреждение ("Това е предупредително съобщение") регистриране.информация ("Това е информационно съобщение") регистриране.debug ("Това е съобщение за отстраняване на грешки")

В горния код сме задали нивото на сеч.ДЕБУГ, което означава, че всички нива, които са над нивото за отстраняване на грешки, ще бъдат регистрирани. По този начин в горния код всички съобщения ще бъдат регистрирани, както е показано на изображението по-долу.

Нека обсъдим повече метода basicConfig () на модула за регистриране.

Основни конфигурации

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

Нека да видим как можем да използваме тези конфигурации в регистрационния модул на python, като изследваме примера една след една.

Параметърът level се използва за задаване на нивото на сериозност, за да видите практическа демонстрация как да го използвате, копирайте кода по-долу в IDE на python и стартирайте.

импортиране на дърводобив.basicConfig (ниво = регистриране.ИНФО) регистриране.критично ("Това е критично съобщение") регистриране.регистрация на грешка („Това е съобщение за грешка“).предупреждение ("Това е предупредително съобщение") регистриране.информация ("Това е информационно съобщение") регистриране.debug ("Това е съобщение за отстраняване на грешки")

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

Параметърът ниво е полезна конфигурация, която трябва да се направи така, че регистрационните файлове да не са твърде големи, като съдържат ненужни данни и да имат само необходимата информация.

Влизане във файл

Виждали сме само как да влезем в терминала, но влизането в терминала не винаги е полезно, тъй като не можем да го запазим за по-нататъшна употреба. За по-добро решение можем да отпечатаме дневниците в текстов файл, който запазваме и анализираме по-късно. Дневниците са текстови и могат да се съхраняват в текстов файл от всякакъв формат, но универсално е прието да се записват дневниците във файл с .регистрационно разширение. Тези файлове са известни като регистрационни файлове и се използват универсално за съхраняване на регистрационни файлове на програми, уеб приложения и друг софтуер.

Можем да запазваме регистрационни файлове във файл, като конфигурираме конфигурацията на модула за регистриране с помощта на функцията basicConfig (). Трябва да дадем името на файла, където искаме да запишем регистрационните файлове в параметъра на името на файла на функцията basicConfig (), след което записите ще бъдат автоматично отпечатани в регистрационния файл, който ние посочим. Нека да видим практически пример, за да разберем как работи.

импортиране на дърводобив.basicConfig (ниво = регистриране.ИНФО, име на файл = "mylog.log ") регистрация.критично ("Това е критично съобщение") регистриране.регистрация на грешка („Това е съобщение за грешка“).предупреждение ("Това е предупредително съобщение") регистриране.информация ("Това е информационно съобщение") регистриране.debug ("Това е съобщение за отстраняване на грешки")

При стартиране на кода можете да видите, че е създаден нов файл в името на текущата работна директория mylog.дневник. При отваряне на файла с текстов редактор може да забележите, че дневниците са запазени във файла.

Ако повторим кода, ще видим, че регистрационният файл ще бъде добавен във файла. Можем да променим това, като посочим параметъра filemode във функцията basiconfig (). По подразбиране параметърът filemode има стойността "a", което означава добавяне. Но понякога искаме и да изтрием регистрираните преди това данни и да запишем новите регистрационни файлове само във файла. За да направим това, можем да дадем на параметъра filemode стойността „w“, която означава „запис“, и той изтрива всички предишни данни във файла и записва новите. За демонстрация вижте следния пример.

импортиране на дърводобив.basicConfig (ниво = регистриране.ИНФО, име на файл = "mylog.log ", filemode =" w ") регистриране.критично ("Това е критично съобщение") регистриране.регистрация на грешка („Това е съобщение за грешка“).предупреждение ("Това е предупредително съобщение") регистриране.информация ("Това е информационно съобщение") регистриране.debug ("Това е съобщение за отстраняване на грешки")

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

Форматиране на дневниците

Видяхме, че изходните регистрационни файлове имат оформление по подразбиране, но можем да променим формата, като зададем параметъра за формат на функцията basicConfig (). Нека видим практическа демонстрация, за да разберем как можем да използваме параметъра format във функцията basicConfig (), за да променим формата на регистрационния файл.

импортиране на дърводобив.basicConfig (ниво = регистриране.ИНФО, формат = "% (име на файл) s:% (име на ниво) s:% (съобщение) s") регистриране.критично ("Това е критично съобщение") регистриране.грешка ("Това е съобщение за грешка") регистриране.предупреждение ("Това е предупредително съобщение") регистриране.информация ("Това е информационно съобщение") регистриране.debug ("Това е съобщение за отстраняване на грешки")

Резултатът от горния код е както е показано на изображението по-долу.

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

% (asctime) s: Това се използва, за да се покаже четимото от хората време в дневниците. За да видите как показва времето, изпълнете следния код в IDE на Python.

импортиране на дърводобив.basicConfig (ниво = регистриране.ИНФОРМАЦИЯ, format = "регистриране на% (asctime) s:% (message) s").Предупреждение ("Това е предупредително съобщение")

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

% (създаден) f: Това ще покаже времето, в което е създаден дневникът.

% (име на файл) s: Това се използва за показване на името на файла в дневника съобщение. За да видите как работи, просто изпълнете следния примерен код във вашата Python IDE.

импортиране на дърводобив.basicConfig (ниво = регистриране.ИНФОРМАЦИЯ, формат = "% (asctime) s:% (име на файл) s:% (съобщение) s") регистриране.Предупреждение ("Това е предупредително съобщение")

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

% (levelname) s: Това се използва за показване на името на използваното ниво като ПРЕДУПРЕЖДЕНИЕ, ОТЛАГАНЕ и т.н.

% (levelno) s: Това се използва за отпечатване на числовата стойност на нивото, от което е съобщение.

% (lineno) d: Това се използва за отпечатване на номера на реда на текущия ред, който показва съобщението. Това е много полезно, тъй като ни дава номера на реда, където трябва да видим грешка, така че помага на процеса за отстраняване на грешки. Нека видим примерния код, за да видим как да го използваме, за да формираме изхода на регистрационни файлове.

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

Този код ще отпечата и ред №, както е показано на изображението по-долу.

% (съобщение) s: Използва се за показване на съобщението, което сме регистрирали.

% (име на път) s: Това се използва за показване на пълното име на пътя на файла с изходния код.

% (процес) d: Това ще покаже идентификатора на процеса, ако е наличен.

% (име на процес) s: Това ще покаже Името на процеса, ако е налично.

% (нишка) d: Това ще покаже идентификатора на нишката, ако е наличен.

% (threadName) s: Това ще покаже името на нишката, ако е налично.

Регистрация на променливи данни

Ние сами сме дали съобщенията в дневниците, които са статични данни. И все пак в реални приложения данните, които регистрирахме, ще бъдат предимно динамична информация от нашето приложение. За да направим това, трябва да изведем променливите с дневника на съобщенията. Ние можем да направим това по много начини. Например можем да включим променливите и да форматираме низа със запазени места и след това да ги предадем на дневника на съобщенията, така че стойностите на променливите да бъдат изведени в записите.

Например вижте кода по-долу; можете да копирате кода, изпълнен във вашата python IDE.

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, докато извикваме функцията за регистриране. Този параметър е полезен, тъй като можем да регистрираме пълното съобщение за изключение с нашето съобщение за грешка във файл или терминален екран.

За да получите практическа демонстрация, за да разберете как можем да намерим следите от стека, копирайте следния код във вашата python IDE и стартирайте.

импортиране на регистрация опит: a = 1/0 с изключение на изключение като e: регистрация.грешка („Възникна грешка“, exc_info = Вярно)

При стартиране на кода изключението ще се регистрира в терминала. Ще видите изхода на кода, както е показано на изображението по-долу. Можете също да регистрирате изключението във файл, като използвате параметъра на името на файла в метода basicConfig (), както обсъдихме по-горе.

Този метод също е от решаващо значение при изграждането на обширното приложение, тъй като можем да имаме обработка на изключения при регистриране, което е отлично за процеса на отстраняване на грешки.

Обекти на регистратора

Модулът за регистриране също предоставя някои полезни класове, които могат да се използват за по-добро регистриране, главно за по-широко приложение. Нека видим някои от най-използваните класове на модула за регистриране и какво и как функционират.

Ако искате пълни подробности за това как да използвате тези класове, можете да се обърнете към официалната документация на модула за регистриране на python.

Заключение

В тази статия научихме основите на регистрирането в python. Модулът за регистриране е ясен и мощен начин за регистриране в python. Да предположим, че не правите регистрация досега, днес е денят да започнете с регистриране, докато четете статията и научихте колко лесно е да използвате регистрацията в python. Вече можете да използвате регистриране както в малки, така и в значителни приложения.

Ако правите регистрация правилно, това наистина ще бъде полезно по един или друг начин. Съветвам ви да започнете да го използвате от малки програми, тъй като това ще ви помогне да получите добри познания за това или две и ще бъде безценно за големи проекти. Може да искате да видите и как да работите с бази данни на SQLite в python. 

Битка за Уеснот 1.13.6 Разработка освободена
Битка за Уеснот 1.13.6, издаден миналия месец, е шестата версия за разработка в 1.13.x серия и предоставя редица подобрения, най-вече на потребителски...
Как да инсталирате League Of Legends на Ubuntu 14.04
Ако сте фен на League of Legends, това е възможност за вас да тествате League of Legends. Имайте предвид, че LOL се поддържа на PlayOnLinux, ако сте п...
Инсталирайте най-новата стратегия за игра OpenRA на Ubuntu Linux
OpenRA е Libre / Free Real Time стратегия за игра, която пресъздава ранните игри на Westwood като класическата Command & Conquer: Red Alert. Разпредел...