Servlet Logging এবং Debugging

Java Technologies - সার্ভলেটস (Servlets)
119
119

Servlet Logging এবং Debugging হলো একটি Servlet ভিত্তিক অ্যাপ্লিকেশন ডেভেলপমেন্টে গুরুত্বপূর্ণ অংশ, যা ডেভেলপারদের ত্রুটি সনাক্ত করতে এবং অ্যাপ্লিকেশনের কার্যপ্রণালী পর্যবেক্ষণে সাহায্য করে।


Servlet Logging

Logging এমন একটি প্রক্রিয়া যা সার্ভার বা অ্যাপ্লিকেশন থেকে ডিবাগিং বা পর্যালোচনার জন্য গুরুত্বপূর্ণ তথ্য সংগ্রহ করে। Servlets-এ logging করতে সাধারণত Java Logging API বা javax.servlet.ServletContext এর লজিং মেথড ব্যবহৃত হয়।

Logging-এর গুরুত্ব

  1. ত্রুটি সনাক্তকরণ: সিস্টেম বা কোডের ত্রুটি খুঁজে বের করতে সাহায্য করে।
  2. রানটাইম এনালাইসিস: কোডের কার্যপ্রণালী ট্র্যাক করা যায়।
  3. ডিবাগিং সহজ করে।
  4. ব্যবহারকারীর কার্যকলাপ পর্যবেক্ষণ।

Servlet Logging পদ্ধতি

1. Using ServletContext

ServletContext এর log() মেথড logging-এর জন্য ব্যবহৃত হয়।

  • log(String message): একটি সাধারণ বার্তা লগ করে।
  • log(String message, Throwable throwable): একটি বার্তা এবং এক্সসেপশন লগ করে।
উদাহরণ:
import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

@WebServlet("/loggingExample")
public class LoggingExampleServlet extends HttpServlet {

    @Override
    protected void doGet(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {

        // ServletContext থেকে log() ব্যবহার
        getServletContext().log("This is an info log message.");
        
        try {
            // Intentional exception for logging demonstration
            int result = 10 / 0;
        } catch (Exception e) {
            getServletContext().log("An error occurred: ", e);
        }
    }
}

2. Using Java Logging API

Java এর java.util.logging প্যাকেজ উন্নত logging সাপোর্ট প্রদান করে।

  • একটি Logger অবজেক্ট তৈরি করে বিভিন্ন লেভেলের লগিং করা যায়: INFO, WARNING, SEVERE ইত্যাদি।
উদাহরণ:
import java.io.IOException;
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

@WebServlet("/javaLogging")
public class JavaLoggingServlet extends HttpServlet {

    private static final Logger LOGGER = Logger.getLogger(JavaLoggingServlet.class.getName());

    @Override
    protected void doGet(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {

        LOGGER.info("This is an informational message.");
        
        try {
            int result = 10 / 0; // Intentional error
        } catch (ArithmeticException e) {
            LOGGER.log(Level.SEVERE, "An error occurred: ", e);
        }
    }
}

3. Using Third-party Logging Libraries

  • Apache Log4j: একটি জনপ্রিয় logging ফ্রেমওয়ার্ক।
  • SLF4J (Simple Logging Facade for Java): বিভিন্ন logging ফ্রেমওয়ার্কের জন্য API প্রদান করে।
  • Logback: আধুনিক logging ফ্রেমওয়ার্ক যা SLF4J-কে সাপোর্ট করে।
Log4j-এর উদাহরণ:
import org.apache.log4j.Logger;

@WebServlet("/log4jExample")
public class Log4jExampleServlet extends HttpServlet {

    private static final Logger logger = Logger.getLogger(Log4jExampleServlet.class);

    @Override
    protected void doGet(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {

        logger.info("Log4j: Info log");
        
        try {
            int result = 10 / 0;
        } catch (ArithmeticException e) {
            logger.error("Log4j: Error log", e);
        }
    }
}

Servlet Debugging

Debugging হলো কোডে ত্রুটি বা সমস্যা সনাক্তকরণের একটি প্রক্রিয়া। Servlets ডিবাগ করতে বিভিন্ন পদ্ধতি রয়েছে।

Debugging পদ্ধতি

  1. System.out.println() বা printStackTrace() ব্যবহার:

    • কোডের মাঝে ডাটা বা ভেরিয়েবলের মান চেক করার জন্য ব্যবহৃত হয়।
    • তবে এটি ছোটখাটো ডিবাগিংয়ের জন্য উপযুক্ত।
    উদাহরণ:
    System.out.println("Debugging: Variable value = " + variable);
    e.printStackTrace();
    
  2. IDE Debugger ব্যবহার:
    • IntelliJ IDEA বা Eclipse-এর Debugger ব্যবহার করে ব্রেকপয়েন্ট সেট করে স্টেপ-বাই-স্টেপ কোড পরীক্ষা করা যায়।
  3. Logging Framework ব্যবহার:
    • Debugging মেসেজ লগ করার জন্য logging frameworks ব্যবহার করা যেতে পারে।
  4. Remote Debugging:
    • সার্ভার কনফিগার করে IDE থেকে সরাসরি রানটাইম debugging করা যায়।

Debugging-এর Tips

  1. Exception Stack Trace চেক করুন: Exception এর লগ মেসেজ থেকে মূল সমস্যা বোঝা যায়।
  2. ব্রেকপয়েন্ট ব্যবহার করুন: গুরুত্বপূর্ণ পয়েন্টে ব্রেকপয়েন্ট দিয়ে কোড পরীক্ষা করুন।
  3. Logging Message Levels ব্যবহার করুন:
    • DEBUG: ডেভেলপমেন্ট এবং ডিবাগিংয়ের জন্য।
    • INFO: সাধারণ তথ্য।
    • ERROR: ত্রুটির তথ্য।
  4. Step Filters ব্যবহার করুন: অপ্রয়োজনীয় লাইব্রেরি কল এড়িয়ে মূল কোডে ফোকাস করতে।

উপসংহার

Servlet Logging এবং Debugging ডেভেলপারদের জন্য অত্যন্ত গুরুত্বপূর্ণ দুটি টুল। Logging-এর মাধ্যমে অ্যাপ্লিকেশনের কার্যপ্রণালী পর্যবেক্ষণ করা যায়, এবং Debugging-এর মাধ্যমে কোডে ত্রুটি সনাক্ত ও সমাধান করা যায়। এই দুটি টুল মিলে একটি Servlet ভিত্তিক অ্যাপ্লিকেশন ডেভেলপমেন্টে স্থিতিশীলতা এবং রক্ষণাবেক্ষণ সহজ করে।

Content added By

Servlet এ Logging এর জন্য Log4j বা SLF4J ব্যবহার

69
69

সার্ভলেট (Servlet) এ Logging এর জন্য Log4j বা SLF4J ব্যবহার করা খুবই কার্যকর একটি পদ্ধতি, কারণ এটি সার্ভার এবং অ্যাপ্লিকেশন সম্পর্কিত বিভিন্ন কার্যক্রম মনিটর ও ডিবাগ করতে সহায়তা করে।

Log4j এবং SLF4J কি?

  1. Log4j:
    • এটি Apache এর একটি জনপ্রিয় লগিং ফ্রেমওয়ার্ক। এটি অ্যাপ্লিকেশনের বিভিন্ন স্তরে লোগ মেসেজ তৈরি করতে সাহায্য করে।
    • এটি Appender, Logger, এবং Layout এর মাধ্যমে লোগ মেসেজ ফরম্যাট এবং আউটপুট কনফিগার করার সুবিধা দেয়।
  2. SLF4J (Simple Logging Facade for Java):
    • এটি একটি Facade (API Layer) যা বিভিন্ন লগিং ফ্রেমওয়ার্কের সাথে কাজ করে। উদাহরণস্বরূপ: Log4j, Logback ইত্যাদি।
    • সরাসরি Log4j এর উপর নির্ভরতা না করে SLF4J ব্যবহার করলে, ভবিষ্যতে লগিং ফ্রেমওয়ার্ক পরিবর্তন করা সহজ হয়।

Servlet এ Log4j ব্যবহার

Log4j সেটআপ করার ধাপ

  1. Log4j লাইব্রেরি ডিপেন্ডেন্সি যুক্ত করুন (Maven ব্যবহার করলে pom.xml ফাইলে):
<dependency>
    <groupId>log4j</groupId>
    <artifactId>log4j</artifactId>
    <version>1.2.17</version>
</dependency>
  1. Log4j কনফিগারেশন ফাইল (log4j.properties): src/main/resources ডিরেক্টরিতে একটি log4j.properties ফাইল তৈরি করুন:
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} [%t] %-5p %c - %m%n

# File Appender
log4j.appender.FILE=org.apache.log4j.FileAppender
log4j.appender.FILE.File=logs/servlet.log
log4j.appender.FILE.layout=org.apache.log4j.PatternLayout
log4j.appender.FILE.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} [%t] %-5p %c - %m%n
  1. Servlet এ Log4j ব্যবহার:
import org.apache.log4j.Logger;

import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;

@WebServlet("/log4jExample")
public class Log4jServletExample extends HttpServlet {
    private static final Logger logger = Logger.getLogger(Log4jServletExample.class);

    @Override
    protected void doGet(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {
        logger.debug("Debug Message: Servlet is processing a GET request");
        logger.info("Info Message: Request received from " + request.getRemoteAddr());
        logger.error("Error Message: This is a simulated error");

        response.getWriter().println("Check the logs for details!");
    }
}

Servlet এ SLF4J ব্যবহার

SLF4J সেটআপ করার ধাপ

  1. SLF4J লাইব্রেরি ডিপেন্ডেন্সি যুক্ত করুন (Maven ব্যবহার করলে pom.xml ফাইলে):
<dependency>
    <groupId>org.slf4j</groupId>
    <artifactId>slf4j-api</artifactId>
    <version>2.0.7</version>
</dependency>
<dependency>
    <groupId>org.slf4j</groupId>
    <artifactId>slf4j-log4j12</artifactId>
    <version>2.0.7</version>
</dependency>
  1. Log4j কনফিগারেশন ফাইল (log4j.properties) আগের মতোই তৈরি করুন।
  2. Servlet এ SLF4J ব্যবহার:
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;

@WebServlet("/slf4jExample")
public class SLF4JServletExample extends HttpServlet {
    private static final Logger logger = LoggerFactory.getLogger(SLF4JServletExample.class);

    @Override
    protected void doGet(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {
        logger.debug("Debug Message: Processing GET request");
        logger.info("Info Message: Client IP - {}", request.getRemoteAddr());
        logger.error("Error Message: Simulated error occurred");

        response.getWriter().println("SLF4J Logging example - Check logs!");
    }
}

Servlet লোগিং এর জন্য Best Practices

  1. Proper Log Levels ব্যবহার করুন:
    • DEBUG: ডিবাগিং তথ্যের জন্য।
    • INFO: সাধারণ কার্যক্রমের জন্য।
    • WARN: সম্ভাব্য সমস্যা বা সতর্কতার জন্য।
    • ERROR: ত্রুটির জন্য।
    • FATAL: গুরুতর ত্রুটির জন্য।
  2. কনফিগারেশন ফাইল সংরক্ষণ করুন:
    • log4j.properties বা log4j.xml এর মাধ্যমে আউটপুট ডিরেক্টরি এবং ফরম্যাট কাস্টমাইজ করুন।
  3. নিরাপত্তা সচেতনতা:
    • লোগ মেসেজে সংবেদনশীল ডেটা যেমন পাসওয়ার্ড, API কী ইত্যাদি যুক্ত করবেন না।
  4. সর্বদা SLF4J ব্যবহার করতে প্রাধান্য দিন:
    • এটি ভবিষ্যতে লগিং ফ্রেমওয়ার্ক পরিবর্তনের প্রক্রিয়াকে সহজ করে।

উপসংহার

  • Log4j সরাসরি লোগিং সাপোর্ট দেয়, কিন্তু SLF4J Flexibility এবং Framework Independence প্রদান করে।
  • Servlet এ লোগিং ব্যবহার করলে সহজে ত্রুটি ডিবাগ করা এবং অ্যাপ্লিকেশনের কার্যক্ষমতা পর্যবেক্ষণ করা যায়।
Content added By

Debugging Techniques এবং Exception Logging

122
122

Servlets এ Debugging এবং Exception Logging ওয়েব অ্যাপ্লিকেশনের উন্নতমান এবং ত্রুটি-প্রতিরোধ ক্ষমতা নিশ্চিত করার জন্য অত্যন্ত গুরুত্বপূর্ণ। এখানে সার্ভলেট ডিবাগিং এবং লগিংয়ের প্রধান পদ্ধতিগুলো আলোচনা করা হলো।


Debugging Techniques

১. ডিবাগার ব্যবহার (IDE Debugger)

ডিবাগিংয়ের সবচেয়ে কার্যকর পদ্ধতি হলো IDE (যেমন IntelliJ IDEA বা Eclipse) ব্যবহার করা।

কিভাবে?
  • আপনার প্রজেক্টে Breakpoints যোগ করুন।
  • সার্ভার (Tomcat/Jetty) ডিবাগ মোডে চালান।
  • Step-Through Execution ব্যবহার করে কোডের প্রত্যেকটি লাইন পরীক্ষা করুন।
  • ভ্যারিয়েবল এবং অবজেক্টের মান রিয়েল-টাইমে পর্যবেক্ষণ করুন।

২. System.out.println() ব্যবহার

সরল ডিবাগিংয়ের জন্য System.out.println() ব্যবহার করে লজিক এবং ভ্যারিয়েবলের মান পর্যবেক্ষণ করা যায়।

উদাহরণ:
System.out.println("Request received at: " + new java.util.Date());
System.out.println("Parameter value: " + request.getParameter("name"));

দোষ: এটি প্রোডাকশন এনভায়রনমেন্টে ব্যবহার করা উচিত নয় কারণ এটি লগ ফাইল তৈরি করে না এবং কার্যকারিতা সীমিত।


৩. Logs ব্যবহার (Java Logging Frameworks)

java.util.logging, Log4j, বা SLF4J ব্যবহার করে লগ ফাইল তৈরি করুন এবং ত্রুটি বা মেট্রিক্স ট্র্যাক করুন।

উদাহরণ (SLF4J):
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

public class MyServlet extends HttpServlet {
    private static final Logger logger = LoggerFactory.getLogger(MyServlet.class);

    @Override
    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        logger.info("Processing GET request for: {}", request.getRequestURI());

        try {
            String param = request.getParameter("name");
            logger.debug("Received parameter: {}", param);
        } catch (Exception e) {
            logger.error("An error occurred: ", e);
        }
    }
}

Exception Logging Techniques

১. Try-Catch Blocks

সার্ভলেটে ত্রুটি হ্যান্ডলিং নিশ্চিত করতে কোডে try-catch ব্লক ব্যবহার করুন।

উদাহরণ:
@Override
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    try {
        // Business logic
        String data = request.getParameter("data");
        process(data);
    } catch (NullPointerException e) {
        logger.error("Null value encountered: ", e);
    } catch (Exception e) {
        logger.error("General error: ", e);
        throw new ServletException("Internal server error occurred", e);
    }
}

২. Global Exception Handler

@WebFilter বা @WebListener ব্যবহার করে সার্ভার লেভেলে সমস্ত ত্রুটি ধরুন।

উদাহরণ (Error Filter):
@WebFilter("/*")
public class ErrorLoggingFilter implements Filter {
    private static final Logger logger = LoggerFactory.getLogger(ErrorLoggingFilter.class);

    @Override
    public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain)
            throws IOException, ServletException {
        try {
            chain.doFilter(request, response);
        } catch (Exception e) {
            logger.error("Unhandled exception caught: ", e);
            throw e; // Let the container handle it
        }
    }
}

৩. Custom Error Page ব্যবহার

web.xml এ কাস্টম ত্রুটি পৃষ্ঠার জন্য কনফিগার করুন।

উদাহরণ (web.xml):
<error-page>
    <error-code>500</error-code>
    <location>/error.jsp</location>
</error-page>
<error-page>
    <exception-type>java.lang.Exception</exception-type>
    <location>/error.jsp</location>
</error-page>
error.jsp ফাইল:
<%@ page isErrorPage="true" %>
<html>
<body>
    <h1>An Error Occurred</h1>
    <p>${exception.message}</p>
</body>
</html>

৪. ServletContext Logging

ServletContext এর মাধ্যমে লগ বার্তা স্টোর করুন।

উদাহরণ:
getServletContext().log("An error occurred in MyServlet: " + e.getMessage(), e);

প্রোডাকশন এনভায়রনমেন্টে Best Practices

  1. Structured Logging Framework ব্যবহার করুন।
  2. Debug Level Logs: ডেভেলপমেন্ট পর্যায়ে DEBUG লেভেল লগ ব্যবহার করুন।
  3. Info Level Logs: প্রোডাকশন পরিবেশে INFO এবং ERROR লেভেল সীমিত করুন।
  4. Stack Trace Logging: ত্রুটির পুরো স্ট্যাক ট্রেস লগ করুন।
  5. Mask Sensitive Data: লগ ফাইলগুলোতে সংবেদনশীল তথ্য এড়িয়ে চলুন।
  6. Centralized Logging Tool: ELK Stack, Splunk, বা Graylog ব্যবহার করে লগ সংরক্ষণ এবং বিশ্লেষণ করুন।

উদাহরণ প্রজেক্ট: সার্ভলেট লগিং এবং ডিবাগিং

Servlet Code:

@WebServlet("/debugExample")
public class DebuggingServlet extends HttpServlet {
    private static final Logger logger = LoggerFactory.getLogger(DebuggingServlet.class);

    @Override
    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws IOException {
        logger.info("Received request at: {}", request.getRequestURI());

        try {
            String param = request.getParameter("value");
            if (param == null) {
                throw new IllegalArgumentException("Parameter 'value' is required");
            }
            logger.debug("Parameter received: {}", param);
            response.getWriter().write("Value received: " + param);
        } catch (Exception e) {
            logger.error("Error processing request", e);
            response.sendError(HttpServletResponse.SC_BAD_REQUEST, "Invalid request: " + e.getMessage());
        }
    }
}

সারাংশ

Debugging এবং Exception Logging Servlet ভিত্তিক অ্যাপ্লিকেশনের একটি অবিচ্ছেদ্য অংশ। Debugging টুল (IDE Debugger, Breakpoints) এবং Logging Framework (SLF4J, Log4j) ব্যবহার করলে অ্যাপ্লিকেশনের ত্রুটি দ্রুত শনাক্ত ও সমাধান করা যায়। প্রোডাকশন পরিবেশে ত্রুটি লগিং সঠিকভাবে বাস্তবায়ন করা হলে তা ভবিষ্যৎ ত্রুটির ঝুঁকি কমাতে সাহায্য করে।

Content added By

উদাহরণ সহ Servlet Logging এবং Debugging

88
88

Servlet Logging এবং Debugging হল এমন প্রক্রিয়া যা ডেভেলপারদের সার্ভলেট অ্যাপ্লিকেশনের কার্যক্রম পর্যবেক্ষণ এবং ত্রুটি নির্ণয় করতে সাহায্য করে। Java Servlet API logging এবং debugging এর জন্য কিছু বিল্ট-ইন সুবিধা দেয়।

১. Servlet Logging

Logging হল এমন একটি প্রক্রিয়া যেখানে অ্যাপ্লিকেশনের কার্যক্রম (যেমন রিকোয়েস্ট, রেসপন্স, ত্রুটি) একটি ফাইল বা কনসোল আউটপুটে সংরক্ষণ করা হয়। Servlet এর জন্য logging প্রধানত ServletContext বা Logger API ব্যবহার করে করা যায়।

উদাহরণ: Basic Logging with ServletContext

import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

@WebServlet("/logging-example")
public class LoggingServlet extends HttpServlet {

    @Override
    protected void doGet(HttpServletRequest request, HttpServletResponse response) 
            throws ServletException, IOException {
        // Logging information
        getServletContext().log("GET request received at /logging-example");

        // Simulating a process
        try {
            String param = request.getParameter("name");
            if (param == null || param.isEmpty()) {
                throw new IllegalArgumentException("Name parameter is missing!");
            }
            response.getWriter().write("Hello, " + param);
        } catch (Exception e) {
            // Logging an error
            getServletContext().log("Error processing request: " + e.getMessage(), e);
            response.sendError(HttpServletResponse.SC_BAD_REQUEST, "Invalid request");
        }
    }
}
এই উদাহরণে:
  1. getServletContext().log(String message) ব্যবহার করে মেসেজ লগ করা হচ্ছে।
  2. ত্রুটি ঘটলে log(String message, Throwable throwable) ব্যবহার করে ত্রুটির বিস্তারিত লগ করা হয়।

উদাহরণ: Logging with java.util.logging.Logger

import java.io.IOException;
import java.util.logging.Logger;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

@WebServlet("/advanced-logging")
public class AdvancedLoggingServlet extends HttpServlet {

    private static final Logger LOGGER = Logger.getLogger(AdvancedLoggingServlet.class.getName());

    @Override
    protected void doGet(HttpServletRequest request, HttpServletResponse response) 
            throws ServletException, IOException {
        LOGGER.info("Processing GET request at /advanced-logging");

        try {
            String param = request.getParameter("action");
            if ("error".equals(param)) {
                throw new RuntimeException("Simulated error");
            }
            response.getWriter().write("Action: " + param);
        } catch (Exception e) {
            LOGGER.severe("Error: " + e.getMessage());
            response.sendError(HttpServletResponse.SC_INTERNAL_SERVER_ERROR, "An error occurred");
        }
    }
}
এই উদাহরণে:
  • Logger API ব্যবহার করে বিভিন্ন স্তরের (INFO, WARNING, SEVERE) লগ তৈরি করা হয়।

২. Servlet Debugging

Debugging হল কোডে সমস্যা চিহ্নিত এবং সমাধান করার প্রক্রিয়া। Debugging করতে Java Servlet API তে System.out.println ব্যবহার করা যেতে পারে, তবে Logger বা ডিবাগার টুল (যেমন IDE-এর বিল্ট-ইন ডিবাগার) ব্যবহার করা উত্তম।

উদাহরণ: Debugging with System.out.println

@WebServlet("/debug-example")
public class DebuggingServlet extends HttpServlet {

    @Override
    protected void doGet(HttpServletRequest request, HttpServletResponse response) 
            throws ServletException, IOException {
        System.out.println("Debug: Received GET request");

        String name = request.getParameter("name");
        System.out.println("Debug: Name parameter = " + name);

        if (name == null || name.isEmpty()) {
            System.out.println("Debug: Name parameter is missing");
            response.sendError(HttpServletResponse.SC_BAD_REQUEST, "Name is required");
            return;
        }

        response.getWriter().write("Hello, " + name);
    }
}
ব্যবহার:
  • System.out.println মেসেজ ব্যবহার করে নির্দিষ্ট স্থানে ডিবাগ ইনফরমেশন প্রিন্ট করা হয়।

৩. Log Levels

Logger API ব্যবহার করলে লগগুলো বিভিন্ন লেভেলে বিভক্ত করা যায়:

  1. SEVERE: মারাত্মক ত্রুটির জন্য।
  2. WARNING: সতর্কতামূলক মেসেজের জন্য।
  3. INFO: সাধারণ তথ্য।
  4. CONFIG: কনফিগারেশনের তথ্য।
  5. FINE, FINER, FINEST: বিস্তারিত ডিবাগ তথ্য।

৪. Debugging in IDE

Servlet debugging-এর জন্য IDE (যেমন IntelliJ IDEA, Eclipse) এর মধ্যে Breakpoint সেট করুন এবং সার্ভারকে Debug মোডে চালু করুন।

ধাপ:

  1. সার্ভার (Tomcat, Jetty) Debug মোডে চালু করুন।
  2. কোডে Breakpoint যোগ করুন।
  3. IDE এর Debugger কনসোল থেকে রিকোয়েস্ট প্রসেস পর্যবেক্ষণ করুন।

উপসংহার

Servlet logging এবং debugging ডেভেলপারদের অ্যাপ্লিকেশনের ত্রুটি নির্ণয় এবং পারফরম্যান্স পর্যবেক্ষণে সাহায্য করে। ServletContext.log, Logger API, এবং IDE Debugger একত্রে ব্যবহার করলে উন্নতমানের ডিবাগিং এবং লগিং সিস্টেম তৈরি করা যায়।

Content added By
টপ রেটেড অ্যাপ

স্যাট অ্যাকাডেমী অ্যাপ

আমাদের অল-ইন-ওয়ান মোবাইল অ্যাপের মাধ্যমে সীমাহীন শেখার সুযোগ উপভোগ করুন।

ভিডিও
লাইভ ক্লাস
এক্সাম
ডাউনলোড করুন
Promotion