大家好,我已經記錄所有的請求,響應異常, 錯誤我Spring服務。我已經搜查有關 攔截器,過濾器,過濾器的日誌記錄,Spring攔截: HandlerInterceptorAdapter記錄器過濾器: AbstractRequestLoggingFilter.java和它的子類 (http://www.javawebdevelop.com/1704067/), CommonsRequestLoggingFilter.java過濾器:LoggerFilter。記錄請求和響應Spring MVC的服務
任何機構的差異,最好的辦法這樣做,我很困惑 或我需要找出第三方庫做到這一點 ?..
-2
A
回答
0
Log4j是基於java的日誌工具與Spring MVC輕鬆整合。 Log4j具有不同的日誌記錄級別,可以根據開發環境進行適當的日誌記錄。
Log4j 2是log4j的繼任者,與其前身相比具有更好的性能。
請參閱下面的鏈接爲彈簧MVC +的Log4j
http://www.codejava.net/frameworks/spring/how-to-use-log4j-in-spring-mvc
編輯的積分:如在評論中提及,PFB用於記錄請求和響應的代碼。
@Aspect
@Component
public class ResponseLoggerAspect {
private static final Logger logger = Logger.getLogger("requestResponseLogger");
ExclusionStrategy excludeJsonAnnotation = new JsonIgnoreAnnotationExclusionStrategy();
Gson gson = new GsonBuilder().setExclusionStrategies(excludeJsonAnnotation).create();
@Pointcut("within(@org.springframework.stereotype.Controller *)")
public void controller() {}
@Pointcut("execution(* *(..))")
public void method() {}
@Pointcut("execution(@com.company.annotation.AddLog * *(..))")
public void Loggable() {}
//This will be caught for only those controller method where @AddLog annotation is written
@Before("Loggable()")
public void printRequestLog(JoinPoint joinPoint) {
try {
Object[] argsList = joinPoint.getArgs();
String str = "[";
for(Object arg : argsList) {
if(arg instanceof Object[]) {
str += Arrays.toString((Object[])arg) + ", ";
} else {
str += String.valueOf(arg) + ", ";
}
}
str += "]";
logger.info("Request args for " + joinPoint.getSignature().getName() + " are : " + str);
} catch(Exception ex) {
logger.info("Unable to log request args", ex);
}
}
//This will be called for all controller methods after returning
@AfterReturning(pointcut = "controller() && method()", returning="result")
public void afterReturning(JoinPoint joinPoint , Object result) {
long start = System.nanoTime();
try {
logger.info("Response sent by " + joinPoint.getSignature().getName() + " are : " + gson.toJson(result));
} catch(Exception ex) {
logger.error("Returned result cant be converted in JSON " , ex);
}
long end = System.nanoTime();
logger.info("elapsed time : " + (end - start));
}
}
0
我用AOP的一個項目類似的東西。我不得不寫這樣一個類:
@Component
@Aspect
public class RequestMonitor {
private static final Logger logger = LoggerFactory.getLogger(RequestMonitor.class);
@Around("@annotation(org.example.ToBeLogged)")
public Object wrap(ProceedingJoinPoint pjp) throws Throwable {
logger.info("Before controller method " + pjp.getSignature().getName() + ". Thread " + Thread.currentThread().getName());
Object retVal = pjp.proceed();
logger.info("Controller method " + pjp.getSignature().getName() + " execution successful");
return retVal;
}
}
相關問題
- 1. 在服務器上記錄WCF請求的請求和響應值
- 2. 在C#中記錄服務SOAP請求和響應#
- 3. 記錄WCF REST服務中的請求/響應
- 4. 如何在Spring中記錄Web請求和響應?
- 5. 記錄客戶端請求而不等待服務器響應
- 6. Spring REST服務日誌請求和響應消息
- 7. WCF服務 - HTTP請求和響應
- 8. Web服務 - HTTP GET請求和響應
- 9. Web服務 - 相關請求和響應
- 10. 如何記錄所有的Web服務客戶端請求和響應
- 11. Java JAX-WS Web服務客戶端:如何記錄請求和響應xml?
- 12. Spring RestTemplate:請求/響應json沒有被記錄
- 13. 記錄WCF服務收到的請求
- 14. Gatling沒有記錄請求/響應
- 15. 在tomcat中記錄所有的請求和響應數據
- 16. 如何在Spring REST服務中記錄所有傳入請求
- 17. Spring MVC請求和響應流程說明
- 18. 如何在soapUI中記錄請求和響應?
- 19. 從Java/spring web服務客戶端檢查請求/響應
- 20. Axis2中的記錄請求和響應xml
- 21. Axis 1:如何記錄請求和響應xml
- 22. 請求/響應的響應正文日誌記錄
- 23. Spring MVC和請求屬性
- 24. Spring MVC和Ajax請求
- 25. 在Django中記錄Web服務請求
- 26. XML請求和響應SSH
- 27. 僅記錄肥皂請求和響應主體Jax WS
- 28. 節點服務器未響應請求
- 29. FTP服務器不響應USER請求
- 30. Java Web服務請求響應問題
沒有,我婉登錄請求和響應休息..感謝反正.. – ramki
請參見上面的編輯。我希望我已經回答了你的問題。 – manu