কম্পিউটার টিউটোরিয়াল

Node.js-এ লগিং (Logging)

ভূমিকা

লগিং যেকোনো অ্যাপ্লিকেশনের অত্যন্ত গুরুত্বপূর্ণ অংশ, যেটা 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)
  1. জাভাস্ক্রিপ্টে প্রিমের অ্যালগরিদম

  2. জাভাস্ক্রিপ্ট const কীওয়ার্ড

  3. জাভাস্ক্রিপ্টে Const এবং Let এর পার্থক্য

  4. Node.js-এ Express-rate-limit ইন্টিগ্রেশন