add: логгер .

This commit is contained in:
Sergei Erjemin 2025-05-14 00:06:39 +03:00
parent 70ddf17c9f
commit fcb21bdd9f
3 changed files with 21 additions and 9 deletions

View File

@ -4,9 +4,8 @@ from etpgrf.config import LANG_RU, MODE_MIXED
class LoggingDefaults: class LoggingDefaults:
LEVEL = logging.DEBUG LEVEL = logging.DEBUG
FORMAT = '%(asctime)s - %(name)s - %(levelname)s - %(message)s' FORMAT = '%(asctime)s - %(name)s - %(levelname)s - %(module)s.%(funcName)s:%(lineno)d - %(message)s'
# Можно добавить ещё настройки, если понадобятся: # Можно добавить ещё настройки, если понадобятся:
# FORMAT: str = '%(asctime)s - %(name)s - %(levelname)s - %(module)s.%(funcName)s:%(lineno)d - %(message)s'
# FILE_PATH: str | None = None # Путь к файлу лога, если None - не пишем в файл # FILE_PATH: str | None = None # Путь к файлу лога, если None - не пишем в файл

View File

@ -20,7 +20,10 @@ def setup_library_logging():
# Проверяем инициализацию хандлеров логера, чтобы случайно не добавлять хендлеры многократно # Проверяем инициализацию хандлеров логера, чтобы случайно не добавлять хендлеры многократно
if not _etpgrf_init_logger.hasHandlers(): if not _etpgrf_init_logger.hasHandlers():
log_level_to_set = logging.WARNING # Значение по умолчанию log_level_to_set = logging.WARNING # Значение по умолчанию
log_format_to_set = '%(asctime)s - %(name)s - %(levelname)s - %(message)s' # Формат по умолчанию # самый мощный формат, который мы можем использовать
log_format_to_set = '%(asctime)s - %(name)s - %(levelname)s - %(module)s.%(funcName)s:%(lineno)d - %(message)s'
# обычно достаточно:
# log_format_to_set = '%(asctime)s - %(name)s - %(levelname)s - %(message)s' # Формат по умолчанию
fin_message: str | None = None fin_message: str | None = None
if hasattr(etpgrf_settings, 'logging_settings'): if hasattr(etpgrf_settings, 'logging_settings'):

22
main.py
View File

@ -4,37 +4,47 @@ import logging
if __name__ == '__main__': if __name__ == '__main__':
# --- Пример использования --- # --- Пример использования ---
print("\n--- Пример использования класса---\n") print("\n--- Пример использования класса---\n")
# Меняем настройки по умолчанию для переносов
etpgrf.defaults.etpgrf_settings.hyphenation.MAX_UNHYPHENATED_LEN = 8 etpgrf.defaults.etpgrf_settings.hyphenation.MAX_UNHYPHENATED_LEN = 8
etpgrf.defaults.etpgrf_settings.logging_settings.LEVEL = logging.DEBUG
etpgrf.logger.update_etpgrf_log_level_from_settings() # Обновляем уровень логирования из настроек
etpgrf.defaults.etpgrf_settings.logging_settings.FORMAT = '%(asctime)s - %(name)s = %(levelname)s - %(message)s'
etpgrf.logger.update_etpgrf_log_format_from_settings() # Обновляем формат логирования из настроек
# Определяем пользовательские правила переносов # Определяем пользовательские правила переносов
hyphen_settings = etpgrf.Hyphenator(langs='ru', max_unhyphenated_len=8) hyphen_settings = etpgrf.Hyphenator(langs='ru', max_unhyphenated_len=8)
# Определяем пользовательские правила типографа
# Проверяем переносы в словах
result = hyphen_settings.hyp_in_text("Бармалейщина") result = hyphen_settings.hyp_in_text("Бармалейщина")
print(result, "\n\n") print(result, "\n\n")
# Проверяем переносы в словах, но "подсовываем" текст с пробелами
result = hyphen_settings.hyp_in_word("Длинношеевый жираф") result = hyphen_settings.hyp_in_word("Длинношеевый жираф")
print(result, "\n\n") print(result, "\n\n")
# Проверяем переносы в английских словах
hyphen_settings2 = etpgrf.Hyphenator(langs='en', max_unhyphenated_len=8) hyphen_settings2 = etpgrf.Hyphenator(langs='en', max_unhyphenated_len=8)
result = hyphen_settings2.hyp_in_text("floccinaucinihilipilification") result = hyphen_settings2.hyp_in_text("floccinaucinihilipilification")
print(result, "\n\n") print(result, "\n\n")
# Определяем пользовательские правила типографа
typo_ru = etpgrf.Typographer(langs='ru', mode='mixed', hyphenation=hyphen_settings) typo_ru = etpgrf.Typographer(langs='ru', mode='mixed', hyphenation=hyphen_settings)
result = typo_ru.process(text="Какой-то длинный текст для проверки переносов. Перпердикюляция!") result = typo_ru.process(text="Какой-то длинный текст для проверки переносов. Перпердикюляция!")
print(result, "\n\n") print(result, "\n\n")
# Проверяем переносы в смешанном тексте (русский + английский)
typo_ru_en = etpgrf.Typographer(langs='ru-en', mode='mixed', hyphenation=True) typo_ru_en = etpgrf.Typographer(langs='ru-en', mode='mixed', hyphenation=True)
result = typo_ru_en.process(text="Расприветище, floccinaucinihilipilification. Это <i>тестовый текст для проверки расстановки</i> переносов" result = typo_ru_en.process(text="Расприветище, floccinaucinihilipilification. Это <i>тестовый текст для проверки расстановки</i> переносов"
" в словах. Миллион 100-метровошеих жирножирафов.") " в словах. Миллион 100-метровошеих жирножирафов.")
print(result, "\n\n") print(result, "\n\n")
# меняем настройки логирования
etpgrf.defaults.etpgrf_settings.logging_settings.LEVEL = logging.DEBUG
etpgrf.logger.update_etpgrf_log_level_from_settings() # Обновляем уровень логирования из настроек
etpgrf.defaults.etpgrf_settings.logging_settings.FORMAT = '%(asctime)s - %(name)s - %(levelname)s - %(message)s'
etpgrf.logger.update_etpgrf_log_format_from_settings() # Обновляем формат логирования из настроек
# Проверяем переносы в тексте с метакодом
txt = ("Каждое пальто, которое мы создаём&nbsp;— это не&nbsp;просто одежда. Это" txt = ("Каждое пальто, которое мы создаём&nbsp;— это не&nbsp;просто одежда. Это"
" вещь, в&nbsp;которой должно быть удобно жить: ходить, ждать, ехать, молчать&nbsp;и&nbsp;— главное&nbsp;—" " вещь, в&nbsp;которой должно быть удобно жить: ходить, ждать, ехать, молчать&nbsp;и&nbsp;— главное&nbsp;—"
" чувствовать себя собой. <b>Мы&nbsp;не&nbsp;шьём одина&shy;ковые пальто. Мы шьём ваше. </b> Ниже&nbsp;—" " чувствовать себя собой. <b>Мы&nbsp;не&nbsp;шьём одина&shy;ковые пальто. Мы шьём ваше. </b> Ниже&nbsp;—"
" как устроен процесс заказа.</p>") " как устроен процесс заказа.</p>")
result = typo_ru.process(text=txt) result = typo_ru.process(text=txt)
print(result, "\n\n") print(result, "\n\n")