在我的Web應用程序(基於Spring)中,我具有簡單的分層體系結構,即Service-> Manager-> Dao-> database。爲了記錄日誌的目的,我想記錄請求到服務,然後從服務退出,這樣很容易調試問題。否則,日誌包含來自不同線程的各種輸出,彼此混合,這是不容易閱讀的。是否有可能與現有的日誌框架,如log4j。記錄應用程序的整個流程易於閱讀
1
A
回答
1
它可以用任何日誌框架。您可以使用AOP在服務方法周圍創建「日誌記錄」方面。這裏有一些example。
1
您可以使用Spring AOP來實現此類日誌。這裏有一個例子:
@Aspect
public class LoggingAspect {
private static final Logger LOG = LoggerFactory.getLogger(LoggingAspect.class);
@Pointcut("call(* com.yourcompany.*.*(..))")
public void serviceMethod() {
}
@Before("serviceMethod()")
public void logMethodCalls(final JoinPoint joinPoint) {
if (LOG.isDebugEnabled())
LOG.debug("Calling method {} with args {}",
joinPoint.getSignature(), joinPoint.getArgs());
}
}
剛絲它作爲一個Spring bean:
<bean class="com.somepackage.LoggingAspect" />
<aop:aspectj-autoproxy/>
,並呼籲該匹配的包的Spring bean的公共方法應該被記錄下來。
相關問題
- 1. 閱讀關閉整個程序,無論其他閱讀。
- 2. 閱讀我的Facebook應用程序的發佈流帖子
- 3. 使整個symfony應用程序只讀
- 4. 閱讀的log4j.xml在Spring應用程序
- 5. RSS閱讀器的Web應用程序
- 6. 通過我的應用程序閱讀另一個應用程序的內容
- 7. 閱讀應用程序使用信息
- 8. 應用程序不記錄
- 9. 記錄應用程序塊
- 10. 記錄應用程序塊
- 11. C#應用程序記錄
- 12. 應用程序記錄器
- 13. 如何爲整個應用程序定義全局記錄器?
- 14. Cocoa XML閱讀器應用程序
- 15. 在應用程序內閱讀PDF Android
- 16. NFC:和閱讀應用程序啓動
- 17. CS203 RF閱讀器 - C#應用程序
- 18. 閱讀擴展程序中的Chrome瀏覽歷史記錄
- 19. 使用RFID閱讀器登錄或退出應用程序
- 20. 閱讀屬於其他應用程序的文件iOS
- 21. Android - 如何閱讀應用程序類中的程序包名
- 22. 記錄在多線程應用程序
- 23. Javascript/HTML5 - 用於web桌面/移動應用程序的音頻流記錄
- 24. c#控制檯應用程序的記錄器應用程序
- 25. 流程記錄EOF
- 26. SAP閱讀SLG1登錄客戶程序
- 27. 閱讀/ proc程序
- 28. 閱讀來自CURL.exe程序的響應
- 29. 必須閱讀用於編程密碼C應用程序的書籍嗎?
- 30. 從應用程序到服務器的視頻流記錄
讓我指定我需要的例子。我有3層,用戶服務(認證方法),UserManager(authenticateUser),UserDaoImpl(認證方法)。我在日誌中需要的是如下「在UserService.authenticate中,參數是...,其他一些日誌語句在authenticicate中,在UserManager.authenticate ....在UserDaoImpl.authenticate方法........中, 「然後是其他請求的日誌。在你的方式,我只能記錄一種方法,但這種方法也可以記錄一些東西。我需要按順序在單個請求中生成的所有日誌,以便於調試。 – dmay
你是否說你想要在所有圖層的單個服務請求期間累積所有日誌消息,然後在服務方法退出時一次全部記錄它們? –
是的,但因爲我目前不知道該怎麼做,所以我只實現了日誌記錄的簡單解決方案,記錄了它在應用程序中發生的所有消息 – dmay