src.parser
1import argparse 2import logging 3 4# Настройка логгирования 5logger = logging.getLogger() 6sql_logger = logging.getLogger("sqlalchemy.engine.Engine") 7sched_logger = logging.getLogger("apscheduler") 8 9 10def parse_args(): 11 """Парсинг аргументов командной строки. 12 13 Создает парсер аргументов и обрабатывает входные параметры для 14 настройки логирования. Поддерживаются следующие параметры: 15 16 - `--nolog`: Опции для отключения логирования: 17 - `all`: Отключает все логирование. 18 - `file`: Отключает логирование в файл. 19 - `console`: Отключает логирование в консоль. 20 21 Returns: 22 argparse.Namespace: Объект с аргументами, переданными через командную строку. 23 """ 24 parser = argparse.ArgumentParser( 25 prog="DanVPN Bot", 26 description="Wireguard config manager", 27 epilog="DanVPN bot start script", 28 ) 29 30 parser.add_argument( 31 "--nolog", 32 nargs="?", 33 const="all", 34 choices=["file", "console", "all"], 35 help="Unable log", 36 ) 37 38 args = parser.parse_args() 39 40 match args.nolog: 41 case "all": 42 logging.disable() 43 case "file": 44 logger.removeHandler(logger.handlers[1]) 45 sql_logger.removeHandler(sql_logger.handlers[1]) 46 sched_logger.removeHandler(sched_logger.handlers[1]) 47 case "console": 48 logger.removeHandler(logger.handlers[0]) 49 sql_logger.removeHandler(sql_logger.handlers[0]) 50 case _: 51 pass 52 53 return args
logger =
<RootLogger root (DEBUG)>
sql_logger =
<Logger sqlalchemy.engine.Engine (INFO)>
sched_logger =
<Logger apscheduler (INFO)>
def
parse_args():
11def parse_args(): 12 """Парсинг аргументов командной строки. 13 14 Создает парсер аргументов и обрабатывает входные параметры для 15 настройки логирования. Поддерживаются следующие параметры: 16 17 - `--nolog`: Опции для отключения логирования: 18 - `all`: Отключает все логирование. 19 - `file`: Отключает логирование в файл. 20 - `console`: Отключает логирование в консоль. 21 22 Returns: 23 argparse.Namespace: Объект с аргументами, переданными через командную строку. 24 """ 25 parser = argparse.ArgumentParser( 26 prog="DanVPN Bot", 27 description="Wireguard config manager", 28 epilog="DanVPN bot start script", 29 ) 30 31 parser.add_argument( 32 "--nolog", 33 nargs="?", 34 const="all", 35 choices=["file", "console", "all"], 36 help="Unable log", 37 ) 38 39 args = parser.parse_args() 40 41 match args.nolog: 42 case "all": 43 logging.disable() 44 case "file": 45 logger.removeHandler(logger.handlers[1]) 46 sql_logger.removeHandler(sql_logger.handlers[1]) 47 sched_logger.removeHandler(sched_logger.handlers[1]) 48 case "console": 49 logger.removeHandler(logger.handlers[0]) 50 sql_logger.removeHandler(sql_logger.handlers[0]) 51 case _: 52 pass 53 54 return args
Парсинг аргументов командной строки.
Создает парсер аргументов и обрабатывает входные параметры для настройки логирования. Поддерживаются следующие параметры:
--nolog
: Опции для отключения логирования:all
: Отключает все логирование.file
: Отключает логирование в файл.console
: Отключает логирование в консоль.
Returns:
argparse.Namespace: Объект с аргументами, переданными через командную строку.