Как перенаправить журналы из вторичных потоков в функциях Azure с помощью Python - PullRequest
2 голосов
/ 01 мая 2019

Я использую функции Azure для запуска скрипта Python, который запускает несколько потоков (из соображений производительности).Все работает должным образом, за исключением того, что в журнале функций Azure отображаются только информационные журналы из потока main ().Все журналы, которые я использую во «вторичных» потоках, которые я запускаю в main (), не отображаются в журналах функций Azure.

Существует ли способ обеспечить отображение журналов из вторичных потоков нажурнал функций Azure?

Используемые мной модули - это «регистрация» и «многопоточность».

Я использую Python 3.6;Я уже пытался снизить уровень регистрации во вторичных потоках, но это, к сожалению, не помогло.Различные функции вторичного потока находятся в разных модулях.

Моя функция имеет структуру, подобную следующему псевдокоду:

def main()->None:
  logging.basicConfig(level=logging.INFO)
  logging.info("Starting the process...")
  thread1 = threading.Thread(target=foo,args=("one arg",))
  thread2 = threading.Thread(target=foo,args=("another arg",))
  thread3 = threading.Thread(target=foo,args=("yet another arg",))
  thread1.start()
  thread2.start()
  thread3.start()
  logging.info("All threads started successfully!")
  return

# in another module

def foo(st:str)->None:
  logging.basicConfig(level=logging.INFO)
  logging.info(f"Starting thread for arg {st}")

Текущий вывод журнала Azure:

INFO: Starting the process...
INFO: "All threads started successfully!"

Я бы хотел, чтобы это было что-то вроде:

INFO: Starting the process...
INFO: "All threads started successfully!"
INFO: Starting thread for arg one arg
INFO:Starting thread for arg  another arg
INFO:Starting thread for arg  yet another arg

(конечно, порядок вторичных потоков может быть любым)

...