Найти Π² Π”Π·Π΅Π½Π΅
107 подписчиков

🐍 Как ΠΏΡ€ΠΎΡ„Π΅ΡΡΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎ ΠΏΠΈΡΠ°Ρ‚ΡŒ Π»ΠΎΠ³ΠΈ Python


Π’ ΡΡ‚Π°Ρ‚ΡŒΠ΅ ΠΌΡ‹ ΠΏΠΎΠ³ΠΎΠ²ΠΎΡ€ΠΈΠΌ ΠΎ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ΅ structlog ΠΈ ΡƒΠ·Π½Π°Π΅ΠΌ, ΠΊΠ°ΠΊ ΠΎΠ½Π° ΠΏΠΎΠΌΠΎΠ³Π°Π΅Ρ‚ ΠΏΠΈΡΠ°Ρ‚ΡŒ качСствСнныС Π»ΠΎΠ³ΠΈ. Π’Π°ΠΊΠΈΠ΅ Π»ΠΎΠ³ΠΈ ΡΠΎΠ΄Π΅ΠΉΡΡ‚Π²ΡƒΡŽΡ‚ Π΅ΠΆΠ΅Π΄Π½Π΅Π²Π½ΠΎΠΉ Ρ€Π°Π±ΠΎΡ‚Π΅ программиста ΠΈ ΡΠΏΠΎΡΠΎΠ±ΡΡ‚Π²ΡƒΡŽΡ‚ Π²Π½Π΅Π΄Ρ€Π΅Π½ΠΈΡŽ эффСктивных ΠΏΡ€Π°ΠΊΡ‚ΠΈΠΊ для обСспСчСния ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΠ³ΠΎ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄Π° ΠΊ Π»ΠΎΠ³ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΡŽ Π²ΠΎ всСм ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π΅.

Помимо этого, рассмотрим распространСнныС ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹ логирования ΠΈ способы ΠΈΡ… Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ посрСдством structlog. ΠœΠ°Ρ‚Π΅Ρ€ΠΈΠ°Π» Π±ΡƒΠ΄Π΅Ρ‚ интСрСсСн ΠΊΠ°ΠΊ для Π½Π°Ρ‡ΠΈΠ½Π°ΡŽΡ‰ΠΈΡ…, Ρ‚Π°ΠΊ ΠΈ для ΠΎΠΏΡ‹Ρ‚Π½Ρ‹Ρ… Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠ², ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ Π΄Π°Π½Π½Ρ‹ΠΉ инструмСнт способСн ΠΊΠ°Ρ€Π΄ΠΈΠ½Π°Π»ΡŒΠ½ΠΎ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ процСсс написания Π»ΠΎΠ³ΠΎΠ²!

Когда-Ρ‚ΠΎ я часто ΠΏΡ€Π΅Π½Π΅Π±Ρ€Π΅Π³Π°Π» Π»ΠΎΠ³Π°ΠΌΠΈ ΠΈ писал ΠΈΡ… Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Ρ‚ΠΎΠ³Π΄Π°, ΠΊΠΎΠ³Π΄Π° ΠΎΠ½ΠΈ ΠΏΠΎΠΌΠΎΠ³Π°Π»ΠΈ Π² срСдС Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ. Π›ΠΎΠ³ΠΈ слуТили эффСктивным срСдством для обнаруТСния ошибок ΠΈΠ»ΠΈ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ Π½Π°Π΄Π»Π΅ΠΆΠ°Ρ‰Π΅ΠΉ Ρ€Π°Π±ΠΎΡ‚Ρ‹ ΠΊΠΎΠ΄Π°, Π½ΠΎ ΠΈΡ… польза ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡ΠΈΠ²Π°Π»Π°ΡΡŒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ локальной ΠΎΡ‚Π»Π°Π΄ΠΊΠΎΠΉ.

ПослС освоСния structlog я научился ΠΏΠΈΡΠ°Ρ‚ΡŒ Π»ΠΎΠ³ΠΈ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π½Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΏΠΎΠΌΠΎΠ³Π°ΡŽΡ‚ Π² повсСднСвной Ρ€Π°Π±ΠΎΡ‚Π΅, Π½ΠΎ ΠΈ ΠΎΠ±ΡΠ·Ρ‹Π²Π°ΡŽΡ‚ ΠΏΡ€ΠΈΠΌΠ΅Π½ΡΡ‚ΡŒ качСствСнныС ΠΏΡ€Π°ΠΊΡ‚ΠΈΠΊΠΈ для обСспСчСния согласованного ΠΏΠΎΠ΄Ρ…ΠΎΠ΄Π° ΠΊ Π»ΠΎΠ³ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΡŽ.

Как Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚, упрощаСтся парсинг Π»ΠΎΠ³ΠΎΠ² для поставляСмого прилоТСния ΠΈ ΡƒΠ»ΡƒΡ‡ΡˆΠ°Π΅Ρ‚ΡΡ ΠΌΠΎΠ½ΠΈΡ‚ΠΎΡ€ΠΈΠ½Π³ Π² Ρ‚Π°ΠΊΠΈΡ… инструмСнтах, ΠΊΠ°ΠΊ Datadog ΠΈ Grafana.

Π’ ΡΡ‚Π°Ρ‚ΡŒΠ΅ я подСлюсь ΠΎΠΏΡ‹Ρ‚ΠΎΠΌ Ρ€Π°Π±ΠΎΡ‚Ρ‹ со structlog ΠΈ ΠΏΡ€ΠΎΠ΄Π΅ΠΌΠΎΠ½ΡΡ‚Ρ€ΠΈΡ€ΡƒΡŽ Π΅Π΅ возмоТности Π½Π° ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π°Ρ…. Допустим, ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ Π½Π°ΠΌΠ΅Ρ€Π΅Π½ Π·Π°Π³Ρ€ΡƒΠ·ΠΈΡ‚ΡŒ Ρ„Π°ΠΉΠ»Ρ‹, ΠΈ ΠΌΡ‹ ΡƒΠΆΠ΅ создали ΠΊΠΎΠ½Π΅Ρ‡Π½ΡƒΡŽ Ρ‚ΠΎΡ‡ΠΊΡƒ, ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°ΡŽΡ‰ΡƒΡŽ эти запросы. Π’ ΠΏΡ€ΠΎΡˆΠ»ΠΎΠΌ я Π±Ρ‹ написал Π»ΠΎΠ³ΠΈ Ρ‚Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ:

import logging
...
logging.debug("Start uploading file with name %s. Number of retries: %s", file_name, 0)
...
logging.error("Failed uploading file with name %s. Current retry: %s.", file_name, retries)
...

Π‘ Π΄Π°Π½Π½Ρ‹ΠΌ Ρ„Ρ€Π°Π³ΠΌΠ΅Π½Ρ‚ΠΎΠΌ ΠΊΠΎΠ΄Π° всС Π² порядкС.

🐍 Как ΠΏΡ€ΠΎΡ„Π΅ΡΡΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎ ΠΏΠΈΡΠ°Ρ‚ΡŒ Π»ΠΎΠ³ΠΈ Python  Π’ ΡΡ‚Π°Ρ‚ΡŒΠ΅ ΠΌΡ‹ ΠΏΠΎΠ³ΠΎΠ²ΠΎΡ€ΠΈΠΌ ΠΎ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ΅ structlog ΠΈ ΡƒΠ·Π½Π°Π΅ΠΌ, ΠΊΠ°ΠΊ ΠΎΠ½Π° ΠΏΠΎΠΌΠΎΠ³Π°Π΅Ρ‚ ΠΏΠΈΡΠ°Ρ‚ΡŒ качСствСнныС Π»ΠΎΠ³ΠΈ.
1 ΠΌΠΈΠ½ΡƒΡ‚Π°