স্প্রিং ওয়েব সার্ভিসে (Spring Web Services) SOAP এবং REST রিকোয়েস্টের লগিং কনফিগারেশনের জন্য আপনাকে কিছু স্টেপ অনুসরণ করতে হবে। এখানে নিচে SOAP এবং REST উভয়ের জন্য কনফিগারেশন প্রক্রিয়া ব্যাখ্যা করা হলো:
SOAP ওয়েব সার্ভিসের ক্ষেত্রে আপনি Spring Web Services Logging Interceptor ব্যবহার করতে পারেন। নিচে একটি উদাহরণ দেওয়া হলো:
স্টেপ ১: ডিপেন্ডেন্সি যোগ করুন
pom.xml এ লগিংয়ের জন্য প্রাসঙ্গিক ডিপেন্ডেন্সি যোগ করুন:
<dependency>
<groupId>org.springframework.ws</groupId>
<artifactId>spring-ws-core</artifactId>
<version>VERSION</version>
</dependency>
<dependency>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-core</artifactId>
<version>VERSION</version>
</dependency>
স্টেপ ২: Interceptor কনফিগার করুন
Spring WS Interceptor কনফিগার করার জন্য নিচের মত একটি ক্লাস লিখুন:
import org.springframework.context.annotation.Configuration;
import org.springframework.ws.server.EndpointInterceptor;
import org.springframework.ws.soap.server.endpoint.interceptor.PayloadLoggingInterceptor;
import org.springframework.ws.config.annotation.EnableWs;
import org.springframework.ws.config.annotation.WsConfigurerAdapter;
import java.util.List;
@EnableWs
@Configuration
public class WebServiceConfig extends WsConfigurerAdapter {
@Override
public void addInterceptors(List<EndpointInterceptor> interceptors) {
// Adding the logging interceptor
PayloadLoggingInterceptor loggingInterceptor = new PayloadLoggingInterceptor();
interceptors.add(loggingInterceptor);
}
}
স্টেপ ৩: log4j.properties যোগ করুন
লগিং কনফিগার করার জন্য log4j.properties বা log4j2.xml ব্যবহার করতে পারেন। উদাহরণ:
log4j.rootLogger=DEBUG, console
log4j.appender.console=org.apache.log4j.ConsoleAppender
log4j.appender.console.layout=org.apache.log4j.PatternLayout
log4j.appender.console.layout.ConversionPattern=%d [%t] %-5p %c - %m%n
log4j.logger.org.springframework.ws=DEBUG
REST রিকোয়েস্টের জন্য লগিং কনফিগারেশন
REST API-র জন্য আপনি Spring Boot এবং SLF4J/Logback ব্যবহার করে লগিং সহজেই সেটআপ করতে পারেন।
স্টেপ ১: ডিপেন্ডেন্সি যোগ করুন
REST API এর লগিংয়ের জন্য নিচের ডিপেন্ডেন্সি যোগ করুন:
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-logging</artifactId>
</dependency>
স্টেপ ২: HTTP রিকোয়েস্ট এবং রেসপন্স লগ করার জন্য LoggingFilter যোগ করুন
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.stereotype.Component;
import javax.servlet.FilterChain;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import org.springframework.web.filter.OncePerRequestFilter;
@Component
public class LoggingFilter extends OncePerRequestFilter {
private static final Logger logger = LoggerFactory.getLogger(LoggingFilter.class);
@Override
protected void doFilterInternal(HttpServletRequest request, HttpServletResponse response, FilterChain filterChain)
throws ServletException, IOException {
logger.info("Incoming request: {} {}", request.getMethod(), request.getRequestURI());
filterChain.doFilter(request, response);
logger.info("Response status: {}", response.getStatus());
}
}
স্টেপ ৩: Application.properties ফাইলে লগিং কনফিগারেশন যোগ করুন
application.properties বা application.yml ফাইলে লগিং লেভেল নির্ধারণ করুন:
logging.level.org.springframework.web=DEBUG
logging.level.com.yourpackage=DEBUG
উভয় SOAP এবং REST এর জন্য সাধারণ লগিং
আপনি যদি উভয় SOAP এবং REST এর লগিং একসাথে কনফিগার করতে চান, তাহলে উভয় কাঠামোতে একটি সাধারণ লগিং ফ্রেমওয়ার্ক যেমন Logback বা Log4j ব্যবহার করতে পারেন। এটি Spring Boot এর সাথে ডিফল্টভাবে আসে এবং এর কনফিগারেশন application.properties বা logback-spring.xml ফাইলের মাধ্যমে করা যায়।
প্রয়োজনে আপনি Spring AOP ব্যবহার করে কাস্টম লগিং যুক্ত করতে পারেন। এটি আপনাকে অ্যাডভান্সড কনফিগারেশন এবং আরও ফাইন টিউনিং সুবিধা প্রদান করবে।
Read more