我需要編寫一個日誌API,它可以在單獨的線程上進行實際日誌記錄。捕獲調用堆棧,並讓它在不同的線程中執行
即我有一個想要記錄一些信息的應用程序。它調用我的API並且api捕獲所有的參數等,然後把它交給一個單獨的線程進行記錄。
記錄器API接受可變參數,因此我最初的想法是捕獲整個調用堆棧,並以某種方式將它交給將執行日誌記錄的線程。
我很高興能夠捕獲到調用堆棧。不過,我不確定我是如何將這個調用堆棧傳遞給另一個方法的。
我在linux上使用g ++,它可能還必須在solaris上使用Sun的CC v12。
任何想法。
感謝弗雷德裏克。這確實是線程記錄器背後的基本原理。我想把磁盤io的緩慢工作轉移到另一個線程上。 我試着複製堆棧,但當然這仍然意味着所有正在被記錄的對象必須有足夠長的時間才能被記錄。我認爲你是在調用點構建日誌字符串的方法,然後把它交給記錄器是一種更好的方法。 – ScaryAardvark 2010-07-13 10:34:21