Показаны различия между двумя версиями страницы.
Предыдущая версия справа и слева Предыдущая версия Следующая версия | Предыдущая версия | ||
develop:pyton:logger [2022/12/03 11:37] admin |
develop:pyton:logger [2023/02/01 09:50] (текущий) admin |
||
---|---|---|---|
Строка 22: | Строка 22: | ||
Собсна структура конфига ниже, перечисляются форматтеры, | Собсна структура конфига ниже, перечисляются форматтеры, | ||
- | Лучше | + | |
+ | Конфиг можно | ||
+ | |||
+ | Настройка целевого уровня задается и в loggers и в handlers, сначала фильтруется в первом, | ||
<code json> | <code json> | ||
Строка 34: | Строка 37: | ||
} | } | ||
</ | </ | ||
+ | |||
+ | |||
+ | |||
+ | Для использования JSON нужен модуль [[https:// | ||
< | < | ||
- | < | + | < |
+ | Три типа логов: | ||
+ | * Общий | ||
+ | * Только ошибки | ||
+ | * Логирование спец событий, | ||
Использование | Использование | ||
<code python> | <code python> | ||
+ | # | ||
+ | |||
import loggers | import loggers | ||
logger = loggers.get_logger(' | logger = loggers.get_logger(' | ||
+ | usr_logger = loggers.get_logger(' | ||
+ | |||
+ | logger.info(" | ||
+ | logger.error(" | ||
- | logger.info(" | + | usr_logger.info(" |
- | logger.error(" | + | |
</ | </ | ||
- | Объект логгера. Думаю тут можно переработать/ | + | Создание объекта логгера |
<code python> | <code python> | ||
# | # | ||
Строка 62: | Строка 78: | ||
FOLDER_LOG = " | FOLDER_LOG = " | ||
LOGGING_CONFIG_FILE = ' | LOGGING_CONFIG_FILE = ' | ||
+ | |||
def create_log_folder(folder=FOLDER_LOG): | def create_log_folder(folder=FOLDER_LOG): | ||
Строка 68: | Строка 85: | ||
- | def get_logger(name, | + | def get_logger(name, |
create_log_folder() | create_log_folder() | ||
with open(LOGGING_CONFIG_FILE, | with open(LOGGING_CONFIG_FILE, | ||
Строка 75: | Строка 92: | ||
logging.config.dictConfig(dict_config) | logging.config.dictConfig(dict_config) | ||
return logging.getLogger(name) | return logging.getLogger(name) | ||
- | |||
- | |||
- | def get_default_logger(): | ||
- | create_log_folder() | ||
- | with open(LOGGING_CONFIG_FILE, | ||
- | logging.config.dictConfig(json.load(f)) | ||
- | |||
- | return logging.getLogger(" | ||
</ | </ | ||
Строка 92: | Строка 101: | ||
" | " | ||
" | " | ||
- | "default": { | + | "strings": { |
" | " | ||
" | " | ||
Строка 98: | Строка 107: | ||
" | " | ||
" | " | ||
- | " | + | " |
- | " | + | " |
- | " | + | |
- | " | + | |
- | " | + | |
- | }, | + | |
" | " | ||
} | } | ||
}, | }, | ||
" | " | ||
- | "logfile": { | + | "mainlog": { |
- | " | + | " |
- | " | + | " |
" | " | ||
" | " | ||
+ | " | ||
+ | }, | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | " | ||
" | " | ||
}, | }, | ||
" | " | ||
" | " | ||
+ | " | ||
" | " | ||
- | " | + | " |
- | }, | + | |
- | " | + | |
- | " | + | |
- | " | + | |
- | " | + | |
- | " | + | |
} | } | ||
}, | }, | ||
" | " | ||
- | "default": { | + | "simple": { |
- | " | + | " |
- | " | + | " |
+ | }, | ||
+ | | ||
+ | " | ||
+ | " | ||
} | } | ||
} | } | ||
Строка 136: | Строка 147: | ||
</ | </ | ||
</ | </ | ||
+ | |||
+ | |||
===== Примеры ===== | ===== Примеры ===== | ||
+ | < | ||
+ | < | ||
+ | <code python> | ||
+ | import logging | ||
+ | from datetime import datetime | ||
+ | |||
+ | start_date = datetime.strftime(datetime.now(), | ||
+ | log_path = f" | ||
+ | |||
+ | # | ||
+ | log = logging.getLogger() | ||
+ | log.setLevel(logging.INFO) | ||
+ | fh = logging.FileHandler(filename=log_path) | ||
+ | fh.setLevel(logging.INFO) | ||
+ | formatter = logging.Formatter(fmt=' | ||
+ | fh.setFormatter(formatter) | ||
+ | log.addHandler(fh) | ||
+ | |||
+ | log.info(" | ||
+ | </ | ||
+ | </ | ||
< | < | ||
< | < | ||
- | |||
<code python> | <code python> | ||
import logging | import logging |