আসুন আমরা পুরো স্ট্যাকট্রেস পেয়েছি তা প্রদর্শনের জন্য একটি শালীন জটিল স্ট্যাকট্রেস তৈরি করি:
def raise_error():
raise RuntimeError('something bad happened!')
def do_something_that_might_error():
raise_error()
সম্পূর্ণ স্ট্যাকট্রেস লগইন হচ্ছে
আপনার মডিউলটির জন্য একটি লগার স্থাপন করা সর্বোত্তম অনুশীলন। এটি মডিউলটির নাম জানবে এবং স্তরগুলি পরিবর্তন করতে সক্ষম হবে (অন্যান্য বৈশিষ্ট্যগুলির মধ্যে যেমন হ্যান্ডলারের)
import logging
logging.basicConfig(level=logging.DEBUG)
logger = logging.getLogger(__name__)
এবং ত্রুটি পেতে আমরা এই লগারটি ব্যবহার করতে পারি:
try:
do_something_that_might_error()
except Exception as error:
logger.exception(error)
কোন লগ:
ERROR:__main__:something bad happened!
Traceback (most recent call last):
File "<stdin>", line 2, in <module>
File "<stdin>", line 2, in do_something_that_might_error
File "<stdin>", line 2, in raise_error
RuntimeError: something bad happened!
এবং তাই আমরা যখন আমাদের একটি ত্রুটি ঘটে তখন একই আউটপুট পাই:
>>> do_something_that_might_error()
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "<stdin>", line 2, in do_something_that_might_error
File "<stdin>", line 2, in raise_error
RuntimeError: something bad happened!
কেবল স্ট্রিং পাচ্ছে
আপনি যদি সত্যিই কেবল স্ট্রিং চান, তবে traceback.format_exc
পরিবর্তে ফাংশনটি ব্যবহার করুন, এখানে স্ট্রিংটিতে লগিং প্রদর্শন করুন:
import traceback
try:
do_something_that_might_error()
except Exception as error:
just_the_string = traceback.format_exc()
logger.debug(just_the_string)
কোন লগ:
DEBUG:__main__:Traceback (most recent call last):
File "<stdin>", line 2, in <module>
File "<stdin>", line 2, in do_something_that_might_error
File "<stdin>", line 2, in raise_error
RuntimeError: something bad happened!
log_error(err)
ফাংশন লিখছি ।