CherryPy এ Error Logging এবং Debugging ব্যবস্থাপনা গুরুত্বপূর্ণ ভূমিকা পালন করে। এগুলি অ্যাপ্লিকেশন ডেভেলপমেন্ট এবং পরিচালনায় সমস্যা সনাক্ত করতে সহায়তা করে। CherryPy কনফিগারেশন ফাইল এবং Python কোডের মাধ্যমে Error Logging এবং Debugging কার্যক্রম সেট করা যায়।
Error Logging Configuration
CherryPy তে Error Logging ব্যবস্থাপনা আপনাকে সার্ভারের ত্রুটি (error) এবং অ্যাক্সেস লগ (access log) ধারণ করতে সহায়তা করে। এটি ডেভেলপারদের অ্যাপ্লিকেশন উন্নত করতে এবং উৎপাদন পরিবেশে সমস্যা দ্রুত সনাক্ত করতে সাহায্য করে।
Error Logging কনফিগারেশন উদাহরণ
CherryPy তে error.log ফাইল কনফিগার করার জন্য log.error_file অপশন ব্যবহার করা হয়।
উদাহরণ: Error Logging কনফিগারেশন
import cherrypy
class MyApp:
@cherrypy.expose
def index(self):
return "স্বাগতম CherryPy অ্যাপ্লিকেশনে!"
if __name__ == '__main__':
cherrypy.config.update({
'server.socket_host': '127.0.0.1',
'server.socket_port': 8080,
'log.error_file': './logs/error.log', # Error Log ফাইল
'log.access_file': './logs/access.log', # Access Log ফাইল
'log.screen': True # স্ক্রীনে লগ দেখানো
})
cherrypy.quickstart(MyApp())
ব্যাখ্যা:
log.error_file: এর মাধ্যমে ত্রুটি লগ ফাইল নির্ধারণ করা হয়।log.access_file: অ্যাক্সেস লগ ফাইলের অবস্থান নির্ধারণ করা হয়।log.screen: সার্ভারের ত্রুটি এবং অ্যাক্সেস লগ স্ক্রীনে দেখানোর জন্যTrueসেট করা হয়।
এই কনফিগারেশন আপনাকে লগ ফাইল তৈরি করতে এবং স্ক্রীনে লগ দেখতে সহায়তা করবে।
Error Handling (Custom Error Pages)
CherryPy তে কাস্টম Error Pages তৈরি করা যায়। উদাহরণস্বরূপ, 404 (Page Not Found) বা 500 (Internal Server Error) ত্রুটির জন্য কাস্টম পৃষ্ঠা তৈরি করা যায়।
কাস্টম Error Page উদাহরণ:
import cherrypy
class MyApp:
@cherrypy.expose
def index(self):
return "স্বাগতম CherryPy অ্যাপ্লিকেশনে!"
@cherrypy.expose
def error(self):
raise cherrypy.HTTPError(404, "Page Not Found!")
if __name__ == '__main__':
cherrypy.config.update({
'server.socket_host': '127.0.0.1',
'server.socket_port': 8080,
'log.error_file': './logs/error.log',
})
# কাস্টম Error Handling
cherrypy.tree.mount(MyApp(), '/')
# 404 ত্রুটি জন্য কাস্টম পেজ
cherrypy.tools.staticdir.on = True
cherrypy.quickstart(MyApp(), '/', config={
'/': {
'tools.staticdir.on': True,
'tools.staticdir.dir': './static'
},
'/error': {
'request.error_page': 'error.html'
}
})
এখানে, 404 ত্রুটির জন্য একটি কাস্টম HTML পৃষ্ঠা error.html পরিবেশন করা হবে।
Debugging Configuration
CherryPy তে Debugging এর মাধ্যমে অ্যাপ্লিকেশন ডেভেলপমেন্টের সময় সমস্যা দ্রুত শনাক্ত করা যায়। CherryPy এর ডিফল্ট ডিবাগিং মোড True থাকলে এটি ত্রুটি বার্তা এবং স্ট্যাক ট্রেস স্ক্রীনে প্রদর্শন করে।
Debugging Configuration উদাহরণ:
import cherrypy
class MyApp:
@cherrypy.expose
def index(self):
return "স্বাগতম CherryPy অ্যাপ্লিকেশনে!"
if __name__ == '__main__':
cherrypy.config.update({
'server.socket_host': '127.0.0.1',
'server.socket_port': 8080,
'tools.dump.on': True, # Debugging চালু করা
'log.screen': True # স্ক্রীনে লগ দেখানো
})
cherrypy.quickstart(MyApp())
ব্যাখ্যা:
tools.dump.on: এটি ডিবাগging চালু করে, যাতে রিকোয়েস্ট, রেসপন্স এবং অন্যান্য তথ্য স্ক্রীনে প্রদর্শিত হয়।log.screen: স্ক্রীনে লগ দেখানোর জন্যTrueসেট করা হয়।
এটি ডেভেলপমেন্ট পর্যায়ে খুবই কার্যকর, কারণ এটি রিকোয়েস্ট এবং রেসপন্স ডেটা দেখিয়ে ডিবাগিং সহজ করে তোলে।
CherryPy তে Error এবং Debugging এর উন্নত কনফিগারেশন
CherryPy তে আরও উন্নত Error Handling এবং Debugging কনফিগারেশন তৈরি করা যায়। যেমন:
- Custom Error Handling: কাস্টম HTTP ত্রুটি কোড এবং পেজ তৈরি করতে পারেন।
- Log Rotation: লগ ফাইলের আকার সীমিত করতে এবং নতুন লগ ফাইল তৈরি করতে log.rotate ব্যবহার করা যায়।
- Error Alerts: ত্রুটির কারণে ইমেইল বা অন্য কোনো নোটিফিকেশন পাঠানোর ব্যবস্থা করা যেতে পারে।
CherryPy তে Error Logging এবং Debugging কনফিগারেশন আপনাকে অ্যাপ্লিকেশনের ত্রুটি সনাক্ত করতে এবং ডেভেলপমেন্টের সময় দ্রুত সমস্যা সমাধান করতে সাহায্য করে। CherryPy এর শক্তিশালী লগিং এবং ডিবাগিং ফিচার গুলি অ্যাপ্লিকেশন ডেভেলপমেন্টের জন্য অত্যন্ত কার্যকরী।
Read more