- Logger представляет интерфейс, который использует непосредственно код приложения.
- Handler посылает запись лога (созданную logger'ом) в соответствующее расположение.
- Filter позволяет определить, какую запись лога выводить.
- Formatter определяет расположение записи лога в итоговом выводе.
logger = logging.getLogger(__name__)
severity:logger name:message) в аргументе format. Более подробно все опции форматирования описаны в Formatter Objects.
Поток форматирования
Перемещение информации лога между logger'ами и handler'ами иллюстрирован диаграммой по ссылке выше.
Logger'ы
Объекты Logger имеют тройную работу. Во-первых, они предоставляют методы коду приложения, так что приложение может в процессе выполнения логировать сообщения. Во-вторых, объекты logger определяют какие сообщения логов будут работать на этом уровне (объекте фильтра). В третих, объекты logger передают подходящие сообщения логов всем заинтересованным handler'ам.
Чаще всего используемые методы объекта logger относятся к одной из двух категорий: настройка и отправка сообщений.
Вот наиболее часто использемые методы настройки:
- Logger.setLevel() определяет минимальный уровень сообщений, которые будут обработаны; debug — минимальный встроенный уровень, а critical — максимальный. Например, если установлен уровень INFO, logger будет обрабатывать сообщения уровня INFO, WARNING, ERROR и CRITICAL и игнорировать сообщения уровня DEBUG.
- Logger.addHandler() и Logger.removeHandler() добавляют и удаляют объекты handler из объекта logger. Handler'ы более подробно обсуждены в Handlers.
- Logger.addFilter() и Logger.removeFilter() добавляют и удалют объекты filter из объекта logger. Filter'ы более подробно обсуждаются в Filter Objects.
Вам не нужно вызывать эти методы каждый раз для каждого logger, который Вы создаёте. Смотрите последние два абазца этого раздела.
Когда объект logger настроен, следующие методы создают сообщения логов:
- Logger.debug(), Logger.info(), Logger.warning(), Logger.error() и Logger.critical() создают записи логов с сообщением и уровнем, соответствующим названию метода. Сообщение — это строка формата, которая может содержать стандартный синтаксис подстановки, такой как %s, %d, %f. Остальные аргументы — список объектов, которые должны быть подставлены в поля подстановки сообщения. В соответствии с **kwargs, методы логирования учитывают только именованый аргумент exc_info и использует его для того, чтобы определить, логировать ли информацию об исключении.
- Logger.exception() создаёт запись в логе, аналогичную методу Logger.error(). Разница в том, что Logger.exception() делает дамп трасировки стека при вызове. Вызывайте этот метод только из обработчика исключений.
- Logger.log() принимает уровень логирования в качестве аргумента. В этом случае приходится больше печатать, но зато это способ залогировать события пользовательского уровня.
getLogger() возвращает ссылку на экземпляр logger'а с именем, если оно задано, или root, если нет. Имена представляют из себя иерархическую структуру с точками в качестве разделителей. Множественные вызовы getLogger() с одним и тем же имененм будут возвращать ссылку на один и тот же объект logger'а. Logger'ы, находящиеся ниже в иерархии являются дочерними для logger'ов, которые находятся выше. Например, для logger'а с имененм foo logger'ы с именами foo.bar, foo.bar.baz и foo.bam будут дочерними.
Logger'ы поддерживают концепцию эффективного уровня. Если для logger'а не задан уровень явно, то используется уровень его родителя. Если и его родитель не имеет заданного уровня — смотрится родитель родителя, и так далее. Корневой logger всегда имеет явно заданный уровень (по умолчанию это WARNING). При решении вопроса обрабатывать ли событи используется именно эффективный уровень.
Дочерние logger'ы распространяют сообщения handler'ам, связанным с родительским logger'ом. Из-за этого нет необходимости определять и настраивать handler'ы для всех logger'ов в приложении. Но важно сконфигурировать handler'ы для logger'ов верхнего уровня и уже потом создавать при необходимости дочерние logger'ы. (Однако, распространение сообщений можно отключить, задав значением атрибута propagate logger'a равным False.)
Handler'ы
Объекты Handler отвечают за отправку соответствующего сообщения (соответствующего уровня) к его месту назначения, определённого в handler'e. Объекты logger могут добавить себе ноль или более handler'ов при помощи метода addHandler(). Например, приложение может хотеть отправлять все сообщения в файл логов, сообщения уровня ошибки и выше в stdout, а все критические сообщения отправлять на почту. Этот сценарий требует три handler'a, каждый из которых отвечает за отправку сообщений определённого уровня в определённое место.
Стандартная библиотека включает в себя несколько типов handler'ов (см Useful Handlers); это руководство по большей части использует в примерах StreamHandler и FileHandler.
Есть несколько методов у handler'a для разработчиков приложений, о которых стоит позаботиться. Методы, которые нужны тем, кто будет пользоваться встроенными handler'ами (то есть, не будет использовать самописные) следующие:
- Метод Handler.setLevel() аналогичен методу объекта logger, он определяет минимальный уровень, который будет направлен в соответствующее место. Зачем нужно два метода setLevel()? Уровень, заданный в logger'e определяет уровень сообщений, который будет передан в handler'ы. Уровень, заданный в каждом handler'e определяет сообщения, которые этот handler будут посылать.
- setFormatter() определяет объект Formatter, который будет использовать этот handler.
- addFilter() и removeFilter() соответственно добавляют и удаляют объекты фильтров из handler'a.
Код приложения не должен напрямую инициализировать и использовать экземпляры Handler. Вместо этого, класс Handler является базовым классом, который определяет интерфейс, которым должны обладать все handler'ы и определяет некоторое поведение по умолчанию, которое могут использовать дочерние классы (или переопределять их).
Formatter'ы

Украшение коробки в стиле джинс
Я думаю, никто не станет спорить, что красивая коробка значит немало, будь то коробка с подарком, или декоративная коробка, которая красуется на полке в вашей квартире. Сколько интересных техник и способов украшения коробок предлагается для наших рукодельниц – всех не перечислить. Коробку можно обклеить тканью или бумагой, можно обвязать или расписать. Сегодня мы покажем, как раскрасить коробку в стиле джинс.
Изучение языка может начаться до рождения
В продолжении темы рекомендую прочитать:
aLinux 15 на старом, добром KDE 3
Уже прошло три года, с того момента как появилась первая динамично развиваемая версия дистрибутива LiveCD, под названием aLinux — предназначенная для использования Linux пользователями Windows с слабым оборудованием.
Система разрабатывается канадским программистом именуемым Jay Klepacs, который предоставляет дистрибутив aLinux как замену системам Windows и Мак ОС х. Новая версия aLinux 15 изпользует в качестве формата пакетов RPM и базируется на основе свободной среды KDE 3, пользователям предоставляется возможность использовать Synaptic в качестве пакетного менеджера. Размер готового образа составляет 1.4ГБ.
В ряд изменений нового релиза можно увидеть такие как: оптимизация для архитекты i686, переход на VIKD дающий возможность управлять сетевыми подключениями и Pidgin в качестве основного клиента, заместо Kopete . Также можно заметить обновление главных пакетов дистрибутива до последних версиях: Linux, glibc, GCC, Xorg, KDE 3, Skype 4,Firefox 17 и др. Также предоставляются пакеты для русской локализации.
Кстати, если нужна лучшая стоматология по разумным ценам, то сходите по ссылке.
Автор: Сергей Курган
Топ 5 лучших российских дистрибутивов Linux 2019
Что интересно, многие пользователи Linux из России даже не догадываются, что помимо дистрибутивов зарубежного происхождения, есть еще и наши, отечественные продукты, которые разрабатываются целыми командами профессионалов. Сегодня мы поговорим о пятерке лучших российских дистрибутивов Linux, описывая их некоторые особенности и возможности.
Стоит отметить, что в данную подборку попали одни из самых популярных российских дистрибутивов Linux. Если вы знаете другие, не менее интересные продукты, расскажите об этом в комментариях. Ну а мы начинаем.
Пятерка лучших российских дистрибутивов Linux
Подобные топы являются частой практикой на страницах этого веб-ресурса. Не так давно я уже рассматривал топ лучших дистрибутивов Linux 2019, где в объектив попали наиболее популярные во всем мире Linux-дистрибутивы. Примерно тогда же я написал топ 10 лучших дистрибутивов Linux для домашнего пользования, где таким же образом отобрал каждый продукт, делая акцент на удобстве использования того или иного линукса именно на домашних ПК. Теперь же я решил рассказать о дистрибутивах российского происхождения, сделав подводку в формате топа.
Astra Linux
Дистрибутив, который был разработан преимущественно для различных государственных и военных структур, делает акцент именно на безопасности и неприкосновенности информационных данных. Как уже понятно из названия, в качестве основы используется Linux – ядро с открытым исходным кодом, поставляемое под лицензией GPL.
У данного дистрибутива имеется две версии: одна для общего пользования (Common Edition), а другая для специального (Special Edition). Последняя, как раз-таки, и используется во всех этих секретных силовых ведомствах.
Подробнее узнать об этом дистрибутиве вы сможете на официальном сайте.
Rosa Linux
Еще один дистрибутив Linux российского происхождения. Но в отличие от предыдущего, Rosa Linux прямо-таки ставит в приоритет разработку полезной и удобной операционной системы для простых пользователей. Конечно, здесь также имеются “закрытые” версии, предназначенные для защиты информации, но основной упор, опять же, делается на создание общедоступных сборок.
Помимо всего прочего, разработчики Rosa предлагают своим пользователям авторский функциональный софт. Например, вы можете более не париться с записью образа Rosa на USB, потому как для этих целей есть специальная утилита.
Узнать об этом дистрибутиве подробнее можно на официальном сайте. Там же можно найти ссылки для скачивания образов.
Alt Linux
Alt Linux является настоящим старожилом среди российских дистрибутивов. Его история начинается аж с 99-го года, и поначалу политика в отношении разработки была совершенно другой. Но время шло, и вместе с ним развивался Alt Linux, и люди, которые его разрабатывают.
Сейчас Alt Linux представляет из себя целое семейство дистрибутивов с собственными репозиториями. Команда разработчиков неустанно трудится, надеясь воплотить в жизнь все свои самые смелые мечты.
В этом самом семействе присутствует несколько отдельных версий Alt Linux:
- Альт Рабочая станция
- Альт Сервер
- Альт Образование
- Альт Линукс СПТ 7.0
Если по названиям первых трех понятно для чего они предназначены, то насчет последней версии возникают вопросы. Так вот, Альт Линукс СПТ 7.0 – это универсальный дистрибутив, подходящий как в качестве рабочей станции, так и в качестве сервера или образовательной операционной системы.
Подробнее о нем можно узнать на официальном сайте.
Simply Linux
Simply Linux разрабатывался практически теми же людьми, что и Альт Линукс. Даже на этом скриншоте, взятом с официального сайта данного дистрибутива, вы можете видеть какой веб-ресурс там открыт. Основной идей данной системы является легкость и доступность (для каждого из вас). Simply не требователен к ресурсам, и поэтому вы смело можете ставить его даже на самые допотопные компьютеры. В качестве графической оболочки здесь используется xfce, и это еще одно подтверждение легкости и нетребовательности дистрибутива.
Как заверяют сами разработчики, идея их детища проста: дать пользователю выбор, благодаря которому он сам может решить, стоит ли ему разбираться во всем многообразии системных изысков, или же просто заняться работой или своими делами. Simply Linux готов к работе из коробки; он имеет для этого набор программного обеспечения.
Подробнее о нем вы сможете узнать, перейдя на официальный ресурс.
Calculate Linux
И завершает наш топ один из самых необычных российских дистрибутивов Linux. Calculate привлекателен тем, что в качестве основы использует Gentoo (весьма сложный в установке и использовании дистрибутив). Однако, в отличие от своего прародителя, Calculate Linux не требует от вас таких серьезных познаний в этой области. В дистрибутиве реализовано большое количество функций, подходящих как для домашнего использования, так и для бизнеса.
Помимо десктопной версии есть еще и серверная. Она может успешно заменить Windows NT Server, имея в себе все необходимые возможности, и даже несколько дополнительных.
И все же, подробнее вы можете узнать на официальном сайте Calculate Linux.
Выводы
Сразу скажу, что я не имел цели предоставить здесь полную информацию по каждому конкретному дистрибутиву. Это всего лишь мое субъективное мнение, которое я выразил через написание этого небольшого топа. Тем более, что после каждого дистрибутива я предоставил ссылки на официальные ресурсы, где вся информация преподносится на русском языке. Поэтому, я думаю, вы без труда разберетесь во всем этом. Моя задача была лишь в том, чтобы предоставить вам топ лучших российских дистрибутивов Linux 2019. И я надеюсь, что с этой задачей я справился. Если же вы хотите что-то добавить/оспорить, то милости прошу в комментарии.
Эволюция формы руки человека
«Человеческая рука характеризуется такими пропорциями, что при сжатом кулаке она напоминает дубинку», — отмечают некоторые исследователи. В декабрьском издании Journal of Experimental Biology было выдвинуто предположение о том, что «возможно, именно в процессе эволюции человеческая рука превратилась в такое оружие».
Однако другие ученые относятся к этой теории довольно скептически. «Нет практически никаких доказательств того, что рука человека эволюционировала подобным образом», — говорит Мэри Марзке, антрополог Государственного Университета Аризоны в Темпе. «Более вероятно, что способность бить кулаком являлась просто удачным (или неудачным) следствием развития ловкости рук в процессе изготовления и использования орудий труда».








