Log4j হল একটি জনপ্রিয় এবং শক্তিশালী লগিং ফ্রেমওয়ার্ক যা Java প্রোগ্রামিং ভাষায় লগ মেসেজিং পরিচালনা করতে ব্যবহৃত হয়। Log4j দুটি প্রধান কনফিগারেশন ফাইল ফরম্যাটে কাজ করে: log4j.xml এবং log4j.properties। এই টিউটোরিয়ালে, আমরা log4j.properties ফাইলের গঠন এবং এটি কিভাবে কনফিগার করা হয় তা আলোচনা করব।
log4j.properties ফাইলটি একটি সহজ পাঠযোগ্য এবং কনফিগারযোগ্য টেক্সট ফাইল যা লগিং আউটপুট এবং সেটিংস সংরক্ষণ করতে ব্যবহৃত হয়। এই ফাইলে আপনি লগার, অ্যাপেন্ডার, এবং লগিং লেভেল নির্ধারণ করতে পারেন।
১. log4j.properties ফাইলের মৌলিক গঠন
log4j.properties ফাইলটি সাধারণত লগারের নাম, অ্যাপেন্ডারের কনফিগারেশন, লগ লেভেল এবং আউটপুট ফরম্যাটের তথ্য ধারণ করে। নিচে একটি সাধারণ log4j.properties ফাইলের উদাহরণ দেওয়া হলো:
# Root logger configuration
log4j.rootLogger=DEBUG, console, file
# Console appender
log4j.appender.console=org.apache.log4j.ConsoleAppender
log4j.appender.console.layout=org.apache.log4j.PatternLayout
log4j.appender.console.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} %-5p %c{1}:%L - %m%n
# File appender
log4j.appender.file=org.apache.log4j.FileAppender
log4j.appender.file.File=app.log
log4j.appender.file.layout=org.apache.log4j.PatternLayout
log4j.appender.file.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} %-5p %c{1}:%L - %m%n
এখানে:
- log4j.rootLogger: এটি লগিং লেভেল এবং অ্যাপেন্ডার গুলিকে কনফিগার করে। এখানে,
DEBUGলগ লেভেল এবং দুইটি অ্যাপেন্ডার (কনসোল এবং ফাইল) ব্যবহার করা হয়েছে। - log4j.appender.console: এটি কনসোলে লগ আউটপুট করার জন্য কনফিগারেশন।
- log4j.appender.file: এটি একটি ফাইল অ্যাপেন্ডার কনফিগারেশন যেখানে লগ আউটপুট একটি ফাইলে
app.logরেকর্ড করা হবে।
২. log4j.properties ফাইলের কনফিগারেশন
২.১ Root Logger Configuration
Log4j এর root logger এর মাধ্যমে লগের লেভেল এবং আউটপুট নির্ধারণ করা হয়। সাধারণত, এটি DEBUG, INFO, WARN, ERROR ইত্যাদি হতে পারে।
log4j.rootLogger=INFO, console, file
এখানে, INFO লগ লেভেলটি সর্বোচ্চ লগের লেভেল হিসাবে ব্যবহার করা হয়েছে, এবং কনসোল এবং ফাইল আউটপুট নির্ধারণ করা হয়েছে।
২.২ Appender Configuration
Appender হলো সেই উপাদান যা লগ মেসেজ আউটপুট করে। এটি কনসোল, ফাইল, ডাটাবেস ইত্যাদি আউটপুট ডিভাইসে লগ মেসেজ পাঠাতে পারে। নিচে কনসোল অ্যাপেন্ডার এবং ফাইল অ্যাপেন্ডারের কনফিগারেশন দেয়া হয়েছে।
- ConsoleAppender: কনসোলে লগ আউটপুট করার জন্য ব্যবহৃত হয়।
log4j.appender.console=org.apache.log4j.ConsoleAppender
log4j.appender.console.layout=org.apache.log4j.PatternLayout
log4j.appender.console.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} %-5p %c{1}:%L - %m%n
এখানে, কনসোল অ্যাপেন্ডার PatternLayout ব্যবহার করে এবং লগ আউটপুট ফরম্যাটের জন্য %d{yyyy-MM-dd HH:mm:ss} %-5p %c{1}:%L - %m%n প্যাটার্ন ব্যবহার করা হয়েছে।
- FileAppender: ফাইলে লগ আউটপুট করার জন্য ব্যবহৃত হয়।
log4j.appender.file=org.apache.log4j.FileAppender
log4j.appender.file.File=app.log
log4j.appender.file.layout=org.apache.log4j.PatternLayout
log4j.appender.file.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} %-5p %c{1}:%L - %m%n
এখানে, লগ মেসেজ ফাইল app.log এ রেকর্ড হবে।
২.৩ Log Level Configuration
Log4j এ লগিং লেভেল পাঁচটি প্রধান স্তরে ভাগ করা হয়: DEBUG, INFO, WARN, ERROR, FATAL। DEBUG হচ্ছে সবচেয়ে বিস্তারিত স্তর এবং FATAL হচ্ছে সবচেয়ে গুরুতর স্তর।
log4j.logger.com.example=DEBUG, console
log4j.logger.org.apache=INFO, file
এখানে, com.example প্যাকেজের জন্য DEBUG লেভেল এবং কনসোল অ্যাপেন্ডার ব্যবহার করা হয়েছে, এবং org.apache প্যাকেজের জন্য INFO লেভেল এবং ফাইল অ্যাপেন্ডার ব্যবহার করা হয়েছে।
৩. ConversionPattern কনফিগারেশন
ConversionPattern একটি প্যাটার্ন যা লগ আউটপুটের ফরম্যাট কনফিগার করে। এটি লগ আউটপুটে বিভিন্ন তথ্য যেমন টাইমস্ট্যাম্প, লগ লেভেল, ক্লাসের নাম, লাইনের নম্বর ইত্যাদি অন্তর্ভুক্ত করতে পারে।
উদাহরণ: ConversionPattern
log4j.appender.console.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} %-5p %c{1}:%L - %m%n
এখানে:
%d{yyyy-MM-dd HH:mm:ss}: লগ টাইমস্ট্যাম্প (সুসংগঠিত তারিখ এবং সময়)।%-5p: লগের স্তরের নাম (যেমন INFO, ERROR)।%c{1}: ক্লাসের নামের প্রথম অংশ।:%L: লাইনের নম্বর।- %m: লগ মেসেজ।%n: একটি নতুন লাইন।
৪. Log4j ফাইল আউটপুট এবং আর্কাইভিং
Log4j এ লগ ফাইল আউটপুট করার পাশাপাশি আপনি লগ ফাইলের আর্কাইভিংও কনফিগার করতে পারেন, যাতে পুরনো লগগুলো নির্দিষ্ট সময় পর আর্কাইভ হয়ে যায় এবং নতুন ফাইল তৈরি হয়।
log4j.appender.file=org.apache.log4j.RollingFileAppender
log4j.appender.file.File=app.log
log4j.appender.file.MaxFileSize=5MB
log4j.appender.file.MaxBackupIndex=5
log4j.appender.file.layout=org.apache.log4j.PatternLayout
log4j.appender.file.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} %-5p %c{1}:%L - %m%n
এখানে:
- MaxFileSize: প্রতিটি লগ ফাইলের সর্বোচ্চ আকার (5MB)।
- MaxBackupIndex: কতগুলি ব্যাকআপ লগ ফাইল রাখা হবে (5টি)।
সারাংশ
log4j.properties ফাইলটি লগ4জে ফ্রেমওয়ার্কের কনফিগারেশন ফাইল যা লগার, অ্যাপেন্ডার, লগ লেভেল এবং আউটপুট ফরম্যাট নির্ধারণ করতে ব্যবহৃত হয়। এটি কনসোল এবং ফাইল আউটপুট কনফিগারেশন সমর্থন করে এবং আপনাকে বিভিন্ন লগ স্তর এবং আউটপুট ফরম্যাট কাস্টমাইজ করার সুবিধা দেয়। এটি সহজে ব্যবহৃত এবং অত্যন্ত কার্যকরী লগিং সিস্টেম তৈরি করতে সাহায্য করে।
Read more