> For the complete documentation index, see [llms.txt](https://mominur.gitbook.io/mominur-notes/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://mominur.gitbook.io/mominur-notes/random-topics/logging-level.md).

# Logging Level

Software চালু, কিন্তু হঠাৎ কি যেন ভুল হচ্ছে? কেমন যেন আচরণ করছে Application টা? এমন মুহূর্তে আপনি কী করবেন? চোখ বন্ধ করে debug করবেন? না কি আগেই smart হয়ে log গুলো দেখবেন?

এই প্রশ্নের উত্তর লুকিয়ে আছে **logging level**–এর মাঝে।

যখন আপনার অ্যাপ্লিকেশন কথা বলে, তখন সেটার ভাষা হলো **logs**। কিন্তু প্রতিটা log message সমান গুরুত্বপূর্ণ নয়। কিছু log বলে—`সব ঠিক আছে`, কিছু বলছে—<kbd>`সতর্ক হও`</kbd>, আর কিছু তো একেবারে চিৎকার করে বলছে—`এই মুহূর্তে কিছু করো, নইলে সব শেষ`

এখানেই আসে **logging level**–এর গুরুত্ব। এই লেখায় আমরা দেখব, কী কী ধরনের log level আছে, কখন কোনটি ব্যবহার করতে হয়, এবং কীভাবে এগুলো আপনাকে অ্যাপ্লিকেশন Monitoring and debugging-এ  help করতে পারে।

***

### Logging Level কী?

একটি **logging level** (বা log level) হচ্ছে এমন একটি পদ্ধতি যার মাধ্যমে সফটওয়্যার অ্যাপ্লিকেশন থেকে উৎপন্ন হওয়া log message গুলোকে শ্রেণিবদ্ধ ও অগ্রাধিকার ভিত্তিতে সাজানো যায়। এটি মূলত log message গুলোকে তাদের গুরুত্ব, তীব্রতা বা উদ্দেশ্য অনুযায়ী বিভিন্ন level-এ ভাগ করে বিশ্লেষণ ও ব্যবস্থাপনা সহজ করে তোলে।

***

### Logging Levels এবং করণীয় ব্যবস্থা:

### 🔴 EMERGENCY

এইটি সবচেয়ে গুরুতর logging level। যখন পুরো সিস্টেম একেবারে অচল হয়ে যায় এবং তাৎক্ষণিক হস্তক্ষেপ ছাড়া কিছুই চলবে না, তখন EMERGENCY log ব্যবহার করা হয়।\
**উদাহরণ:**

* Server crashed
* Database connection failed
* Critical hardware failure
* Network outage
* File system corruption

**করণীয়:**

* অবিলম্বে DevOps বা SRE টিমকে alert করুন
* Incident response প্ল্যান চালু করুন
* অটোমেটেড failover চালু থাকলে তা একটিভ করুন
* System status page–এ maintenance নোটিশ দিন
* লগ সংরক্ষণ করে RCA (Root Cause Analysis) প্রস্তুত করুন

***

### 🟠 ALERT

এটি এমন একটি অবস্থা বোঝায় যেটি অতীব গুরুত্ব সহকারে সাথে সাথে সমাধান করতে হবে। যদিও সিস্টেম পুরোপুরি অচল হয়নি, তবে তাৎক্ষণিক পদক্ষেপ না নিলে বড় ক্ষতি হতে পারে।\
**উদাহরণ:**

* High CPU usage
* Payment gateway down
* হঠাৎ প্রচুর ট্রাফিক

**করণীয়:**

* Monitoring টুল থেকে alert configure করুন
* Scaling বা load balancing ব্যবস্থা নিন
* অনাকাঙ্ক্ষিত behavior এর root cause অনুসন্ধান করুন
* Proactive caching বা fallback strategy প্রয়োগ করুন

***

### 🔴 CRITICAL

CRITICAL মানে হলো এমন ত্রুটি যা একটি গুরুত্বপূর্ণ ফিচার বা কম্পোনেন্ট অকেজো করে দিতে পারে। এর ফলে পুরো সিস্টেম না হলেও, এর বড় একটা অংশ ক্ষতিগ্রস্ত হয়।\
**উদাহরণ:**

* Server disk full
* External API not responding
* Application component unavailable
* Database connection failed

**করণীয়:**

* অবিলম্বে responsible টিমকে জানানো
* Faulty কম্পোনেন্ট isolate করে বাকিটা সচল রাখা
* Retry mechanism বা fallback logic চালু
* Continuous integration pipeline–এ alert সিস্টেম যোগ

***

### 🟥 ERROR

ERROR হলো এমন একটি ত্রুটি যা সিস্টেমের কোনো নির্দিষ্ট অংশে সমস্যা তৈরি করে, তবে পুরো সিস্টেম বন্ধ হয় না। অ্যাপ্লিকেশন চলতে থাকে, কিন্তু নির্দিষ্ট কিছু অপারেশন Fail হয়।\
**উদাহরণ:**

* API timeout
* Database query error
* File not found
* Input validation failure

**করণীয়:**

* সমস্যা resolve করতে automated error handler যোগ করুন
* error logs সংরক্ষণ করে analysis করুন
* User-friendly error message দেখান
* Test case update করে future-proof করুন

***

### 🟧 WARNING

WARNING level নির্দেশ করে যে কিছু একটা ঠিকঠাক চলছে না, কিন্তু এখনো ত্রুটি ঘটেনি। এটি ভবিষ্যতে সমস্যা হওয়ার সম্ভাবনার ইঙ্গিত দেয়।\
**উদাহরণ:**

* Deprecated API ব্যবহার
* Disk space কমে আসছে
* SSL certificate শিগগিরই expire হবে
* API rate limit crossed

**করণীয়:**

* সমস্যার উৎস বিশ্লেষণ করে উন্নয়ন পরিকল্পনা নিন
* Schedule করে optimization বা পরিবর্তন প্রয়োগ করুন
* System resource usage monitor করুন

***

### 🟨 NOTICE

NOTICE মানে হচ্ছে এমন কিছু ঘটেছে যা স্বাভাবিক, তবে তা গুরুত্বপূর্ণ এবং মনোযোগের দাবি রাখে। এটি সাধারণত system status বা কার্যক্রম জানায়।\
**উদাহরণ:**

* Scheduled maintenance start
* New user registration
* API key rotated
* Cache refreshed
* Database backup successful

**করণীয়:**

* এসব logs ব্যবহার করে কার্যক্রম মনিটর করুন
* ব্যবহারকারীকে optionally নোটিফাই করুন
* Audit trail ও রিপোর্টিং-এ অন্তর্ভুক্ত করুন

***

### 🟦 INFO

INFO logging ব্যবহার করা হয় সাধারণ তথ্যের জন্য—যেমন সিস্টেমে কী হচ্ছে, কোন কার্যক্রম সম্পন্ন হয়েছে ইত্যাদি। এটি কোনো সমস্যা বা সতর্কতা বোঝায় না।\
**উদাহরণ:**

* User login
* File upload completed
* Scheduled task execution
* SQL log

**করণীয়:**

* System performance ও usage tracking-এ ব্যবহার করুন
* Business intelligence ও analytics-এর জন্য সংরক্ষণ করুন
* Over-logging থেকে বিরত থাকুন

***

### 🟩 DEBUG

DEBUG হচ্ছে সবচেয়ে বিশদ (verbose) logging level। এটি সাধারণত ডেভেলপাররা ব্যবহার করে সিস্টেমের আভ্যন্তরীণ কাজকর্ম বিস্তারিতভাবে বোঝার জন্য।\
**উদাহরণ:**

* SQL execution trace
* Internal logic flow
* API request/response details

**করণীয়:**

* শুধুমাত্র development/test environment–এ চালু রাখুন
* Sensitive তথ্য যেন log না হয়, তা নিশ্চিত করুন
* Debug log analysis-এর জন্য structured format ব্যবহার করুন

***

Logging হচ্ছে আপনার অ্যাপ্লিকেশনের ভিতরের ভাষা—যেটা শুধু বুঝতে নয়, বিশ্লেষণ করে কাজও করতে হয়। প্রতিটি logging level–এর জন্য উপযুক্ত ব্যবস্থা না নিলে, log থাকবে কিন্তু আপনি action নিতে পারবেন না।
