====== NullLog ====== Класс-загрушка. Не выполняет никаких регистраций событий, а просто эмитирует работу. По основному [[.:api|API]] и параметрам конструктора может заменить все остальные классы, позволяя отключать журналирование событий. ====== Консоль ====== Для использования консоли как канала журналирования в модуле ''aw_log.console'' определены следующие классы для вывода журналов: * ''StdoutLog'' - отправка сообщений на стандартный вывод * ''StderrLog'' - отправка сообщений на стандартный поток ошибок Инициализируются все классы одинаково. Рассмотрим на примере ''StderrLog'' StderrLog([prefix]) **Возвращает:** объект журнала. ^ Параметр ^ Тип ^ Описание ^ | ''prefix'' | ''str'' | Префикс объекта. Если не задан, то выставляется в значение ''main'' | ====== Файлы ====== Работа с файлами журнала. Определён в файле ''aw_log.file''. ===== FileLog ===== Простое ведение файла журнала. FileLog([prefix], [file_name], [file_obj], [time_to_flush]) ^ Параметр ^ Тип ^ Описание ^ | ''prefix'' | ''str'' | Префикс объекта журналирования | | ''file_name'' | ''str'' | Имя файла журнала | | ''file_obj'' | ''TextIO'' | Объект файла журнала. Если по какой-то причине файл уже открыт функцией ''open()'', то объект, полученный от этой функции можно задать через данный параметр | | ''time_to_flush'' | ''int'' | Время, через которое журнал сбрасывается на диск. Данное время выдерживается не чётко, а при следующей попытке записи. При этом сначала добавляется эта запись, а затем журнал сбрасывается на диск. Время по умолчанию задано в константе ''TIME_TO_FLUSH'' | Нет смысла задавать параметры ''file_name'' и ''file_obj'' одновременно. ''file_obj'' используется когда не задан ''file_name''. Для сброса данных на диск имеется метод ''flush()''. Его можно вызывать самостоятельно и он вызывается автоматически при уничтожении объекта журналирования. Кроме того файл можно закрыть методом ''close()'' объекта журналирования. ===== LogrotateFile ===== Построение журналирования с ротацией. Поскольку для данного канала требуется много подготовительной работы, то LogrotateFile.make([directory], [prefix], [time_to_flush]) ^ Параметр ^ Тип ^ Описание ^ | ''directory'' | ''str'' | Путь к директории хранения файлов. По умолчанию '.' | | ''prefix'' | ''str'' | Префикс имени файла и заодно и префикс объекта журналирования. По умолчанию ''main'' | | ''time_to_flush'' | ''int'' | Смысл параметра как в [[#FileLog]] | В остальном всё как в [[#FileLog]]. Ротация происходит при сбросе журнала, если текущая дата отличается от той, когда создавался журнал. Тем самым, период ротации - сутки. ====== syslog(3) ====== Определён в ''aw_log.syslog''. Для использования необходимо предварительно инициализировать библиотеку. Для этого нужно выполнить: SysLog.init_syslog(ident) ^ Параметр ^ Тип ^ Описание ^ | ''ident'' | ''str'' | Идентификатор процесса в подсистеме ''syslog(3)''. Обязательная часть вызова процесса инициализации. В качестве значения можно использовать обобщённое и подготовленное имя приложения (без пробелов и специальных символов кроме ''.'' ''-'' ''_'') | После инициализировать объёкт можно через SysLog([prefix], [facility]) ^ Параметр ^ Тип ^ Описание ^ | ''prefix'' | ''str'' | Префикс объекта журналирования | | ''facility'' | [[https://docs.python.org/3/library/syslog.html#syslog.LOG_AUTH|Константа модуля syslog]] | Подсистема для журналирования в терминах ''syslog(3)'' |