CherryPy একটি শক্তিশালী ওয়েব ফ্রেমওয়ার্ক যা নিজস্ব Built-in Logging System প্রদান করে। এটি সার্ভারের কর্মক্ষমতা, অ্যাক্সেস, ত্রুটি, এবং অন্যান্য কার্যক্রম লগ করার জন্য ব্যবহার করা হয়। লগিং সিস্টেম আপনার অ্যাপ্লিকেশনটির ডিবাগিং, সিস্টেম মনিটরিং এবং পারফরম্যান্স অপটিমাইজেশনে সহায়তা করে।
CherryPy এর লগিং সিস্টেমের সুবিধা
- অ্যাক্সেস লগ: ক্লায়েন্ট রিকোয়েস্ট এবং রেসপন্স ট্র্যাক করার জন্য।
- ত্রুটি লগ: সার্ভার বা অ্যাপ্লিকেশন স্তরের ত্রুটি শনাক্ত করার জন্য।
- কাস্টম লগিং: অ্যাপ্লিকেশনের জন্য কাস্টম লগ তৈরি করার জন্য।
- ফাইল লগিং: লগ ফাইল হিসেবে লগ তথ্য সংরক্ষণ করা।
CherryPy লগিং সিস্টেমের উপাদানসমূহ
- Access Log: এটি ক্লায়েন্ট রিকোয়েস্টের জন্য লগিং করে। এটি সাধারণত HTTP রিকোয়েস্ট এবং সার্ভার রেসপন্স সম্পর্কিত তথ্য ধারণ করে।
- Error Log: এটি ত্রুটি সম্পর্কিত তথ্য যেমন, সার্ভার ক্র্যাশ বা অন্যান্য ত্রুটির বিষয়ে লগ ধারণ করে।
- Custom Logging: আপনার অ্যাপ্লিকেশনের বিশেষ কোনো ঘটনা বা কার্যক্রম ট্র্যাক করতে কাস্টম লগ তৈরি করা যায়।
CherryPy লগিং কনফিগারেশন
CherryPy এর লগিং কনফিগারেশন অনেক নমনীয়, এবং আপনি সহজেই লগের ফাইল লোকেশন, ফরম্যাট, এবং লগ লেভেল কনফিগার করতে পারেন।
লগিং কনফিগারেশন উদাহরণ
import cherrypy
class MyApp:
@cherrypy.expose
def index(self):
cherrypy.log("Index page accessed")
return "Welcome to CherryPy!"
if __name__ == '__main__':
cherrypy.config.update({
'log.access_file': './logs/access.log', # অ্যাক্সেস লগ ফাইলের লোকেশন
'log.error_file': './logs/error.log', # ত্রুটি লগ ফাইলের লোকেশন
'log.screen': True, # স্ক্রীনে লগ দেখানো
'log.log_to_file': True, # ফাইলে লগ লিখা
'log.format': '%(asctime)s [%(levelname)s] %(message)s', # লগ ফরম্যাট
'log.level': 'INFO', # লগ লেভেল
})
cherrypy.quickstart(MyApp())
ব্যাখ্যা:
log.access_file: অ্যাক্সেস লগ ফাইলের লোকেশন।log.error_file: ত্রুটি লগ ফাইলের লোকেশন।log.screen: স্ক্রীনে লগ দেখানোর জন্য সেট করা হয়েছে।log.log_to_file: লগ ফাইল সংরক্ষণ চালু করা।log.format: লগ ফরম্যাট নির্ধারণ করা।log.level: লগের লেভেল (যেমন:DEBUG,INFO,WARNING,ERROR,CRITICAL)।
CherryPy এর লগ লেভেল
CherryPy লগ সিস্টেমের বিভিন্ন লেভেল রয়েছে, যা আপনাকে লগিংয়ের গুরুত্ব অনুসারে ফিল্টার করতে সাহায্য করে:
DEBUG: ডিবাগging তথ্য, সাধারণত ডেভেলপমেন্টে ব্যবহৃত হয়।INFO: সাধারণ তথ্য লগ, যেমন ইউজার লগইন।WARNING: সতর্কতার বার্তা, যা আপনার নজর দেওয়ার জন্য।ERROR: ত্রুটি সম্পর্কিত বার্তা।CRITICAL: গুরুতর ত্রুটি, যা অ্যাপ্লিকেশনের কাজ বন্ধ করে দিতে পারে।
উদাহরণ: লগ লেভেল ব্যবহার
import cherrypy
class MyApp:
@cherrypy.expose
def index(self):
cherrypy.log("Index page accessed", level='INFO')
return "Welcome to CherryPy!"
if __name__ == '__main__':
cherrypy.config.update({
'log.level': 'DEBUG' # লগ লেভেল সেট করা
})
cherrypy.quickstart(MyApp())
এখানে, level='INFO' দিয়ে নির্দিষ্ট একটি লগ বার্তার লেভেল নির্ধারণ করা হয়েছে।
কাস্টম লগ তৈরি করা
CherryPy এর log() ফাংশন ব্যবহার করে আপনি কাস্টম লগ তৈরি করতে পারেন। এই ফাংশনটি নির্দিষ্ট বার্তা এবং লেভেল সহ লগ রেকর্ড করতে সাহায্য করে।
কাস্টম লগিং উদাহরণ
import cherrypy
class MyApp:
@cherrypy.expose
def index(self):
cherrypy.log("This is a custom log message.", level='INFO')
return "Welcome to CherryPy!"
if __name__ == '__main__':
cherrypy.config.update({
'log.access_file': './logs/access.log',
'log.error_file': './logs/error.log',
'log.screen': True, # স্ক্রীনে লগ দেখানো
'log.level': 'INFO' # লগ লেভেল
})
cherrypy.quickstart(MyApp())
এখানে cherrypy.log() ব্যবহার করে কাস্টম লগ মেসেজ তৈরি করা হয়েছে, যা INFO লেভেল সহ access.log ফাইলে লেখা হবে।
CherryPy তে Error Handling এবং Logging
CherryPy তে ত্রুটি লগিং খুবই গুরুত্বপূর্ণ। যখন আপনার অ্যাপ্লিকেশন কোনো ত্রুটি ফেলে, তখন সেগুলি error.log ফাইলে রেকর্ড করা হয়।
উদাহরণ: Error Handling এবং Logging
import cherrypy
class MyApp:
@cherrypy.expose
def index(self):
raise cherrypy.HTTPError(500, "This is a custom error message.")
if __name__ == '__main__':
cherrypy.config.update({
'log.error_file': './logs/error.log', # ত্রুটি লগ ফাইল
'log.level': 'ERROR' # ত্রুটি লগিং লেভেল
})
cherrypy.quickstart(MyApp())
এখানে, যদি কোনো ত্রুটি ঘটে, তবে ত্রুটির বার্তা error.log ফাইলে লেখা হবে।
CherryPy এর Built-in Logging System ওয়েব অ্যাপ্লিকেশনগুলোর জন্য একটি শক্তিশালী টুল। এর মাধ্যমে আপনি অ্যাপ্লিকেশনের বিভিন্ন কার্যক্রম যেমন অ্যাক্সেস, ত্রুটি, এবং কাস্টম ইভেন্ট লগ করতে পারেন। CherryPy এর লগিং সিস্টেমের মাধ্যমে অ্যাপ্লিকেশনের পারফরম্যান্স মনিটর করা এবং ডিবাগিং সহজ করা সম্ভব। লগিং কনফিগারেশন, লগ লেভেল এবং কাস্টম লগ ব্যবহারের মাধ্যমে আপনার অ্যাপ্লিকেশনকে আরও কার্যকর এবং নির্ভরযোগ্য করা যায়।
Read more