ভূমিকা
লগিং যেকোনো অ্যাপ্লিকেশনের অত্যন্ত গুরুত্বপূর্ণ অংশ, যেটা Node.js বা অন্য কোনো প্রোগ্রামিং ল্যাঙ্গুয়েজে বানানো হোক। লগিং অ্যাপ্লিকেশনের অস্বাভাবিক আচরণ, রিয়েল-টাইম এরর ও এক্সেপশন ডিটেক্ট করতে সাহায্য করে। লজিক্যাল লগ অ্যাপ্লিকেশনে অবশ্যই রাখা উচিত। এই লগগুলো ভুল শনাক্ত করে তা দ্রুত সমাধান করতে সাহায্য করে।
বর্তমানে ৫টি লগ লেভেল রয়েছে:
error
warn
info
verbose
debug
লগ লেভেলগুলো সাবধানে কনফিগার করলে সেরা ফলাফল পাওয়া যায়।
মিডলওয়্যার
মিডলওয়্যারকে রিকোয়েস্ট পাইপলাইনে বসিয়ে ডিবাগ মডিউলের শক্তি সরাসরি লগ প্রিন্ট করতে ব্যবহার করা যায়। ডিবাগ মডিউলের সুবিধা হলো প্রায় সকল মডিউল লগ প্রিন্ট করার জন্য এটি ব্যবহার করে। রিকোয়েস্ট এবং রেসপন্সও এই মিডলওয়্যারের মাধ্যমে লগ করার জন্য পাস করা যায়। এক্সপ্রেস অ্যাপে এটি খুব উপকারী। মিডলওয়্যার সেটআপ সহজ এবং যেকোনো ফ্রেমওয়ার্কে করা যায়।
মিডলওয়্যার জন্য ফাইল কনফিগারেশন
application
const app = express() const logMiddleware = require('my-logging-middleware') app.use(logMiddleware)router
const router = express.Router() const routeLoggingMiddleware = require('my-route-logging-middleware') router.use(routeLoggingMiddleware)errors
const app = express(); const errorLoggingMiddleware = require('my-error-logging-middleware') app.use(errorLoggingMiddleware)Winston প্যাকেজ
লগিং-এর জন্য winston প্যাকেজও ব্যবহার করা যায়। এতে বিভিন্ন লগ লেভেল, কোয়েরি এবং প্রোফাইলার রয়েছে।
application
const app = express() const winstonPackage = require('winston') const consoleTransport = new winstonPackage.transports.Console() const myWinstonOptions = { transports: [consoleTransport] } const logger = new winstonPackage.createLogger(myWinstonOptions) function logRequest(req, res, next) { logger.info(req.url) next() } app.use(logRequest) function logError(err, req, res, next) { logger.error(err) next() } app.use(logError)