====== 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)'' |