2013-11-25 18 views
1

我正在開發一個使用普通html(5)+ css(3)+ js(不使用任何框架)的應用程序。 我遇到了JavaScript調試的問題。搜索導致我log4javascript。我的Q是:log4javascript - 用法

從演示的清楚如何在給定的HTML頁面中使用。

因此,如果我的頁面被轉換到另一個頁面,我怎麼能得到相同的舊的記錄器處理程序,以便我可以繼續記錄到相同的日誌文件?

如果多個用戶使用該應用程序,它是如何工作的? (請原諒我缺乏知識:-))。

如果有任何關於如何獲取記錄器的處理程序的示例代碼,該代碼程序已在另一個頁面中的頁面1中初始化,那麼這將有助於我縮小範圍。

在此先感謝, Ravi。

回答

1

由於log4javascript在客戶端上運行,所有日誌都將由各個客戶端使用的瀏覽器生成。您的網站的「多用戶」可以指以下任一:

    您的網站在同一瀏覽器的不同標籤頁中打開的
  1. 多實例
  2. 在不同的機器,不同的用戶使用瀏覽器來查看您的網站

現在,log4javascript有「追加程序」,你可能已經瞭解的概念,並具有以下可用appenders

  • AlertApp安德
  • AjaxAppender
  • PopUpAppender
  • InPageAppender
  • BrowserConsoleAppender

對於情況(1)中,不知道你是否可以登錄 「同一個文件」 - 因爲沒有這些追加程序允許您登錄到文件。對於情況(2) - 由於日誌是針對不同的客戶機在不同的機器上生成的,因此記錄到相同的文件是無關緊要的。

要回答你的問題,我敢肯定如果使用PopUpAppender,然後會彈出一個窗口了第一頁,然後在下一個頁面會繼續記錄到同一PopUpAppender窗口,而無需擔心任何處理。 BrowserConsoleAppender也一樣。

如果您希望收集由您的服務器上的多個客戶端生成的日誌,那麼最好的方法是使用AjaxAppender。在這種情況下,將日誌追加到相同客戶端/用戶的「相同文件」或「相同流」(或其他任何內容)取決於您如何實現AjaxAppender的服務器端處理程序。想到的一種方法是,每個客戶端爲AjaxAppender使用的URL將包含用戶標識或任何唯一的客戶端標識符,這將有助於服務器識別日誌所來自的用戶/客戶端,然後保存所有日誌在服務器上的一個地方。

+0

你說得對PopUpAppender。 BrowserConsoleAppender的行爲取決於瀏覽器,但我認爲通常頁面重新加載會重置控制檯。 –

+0

我認爲他問他是否必須重新初始化每個頁面上的記錄器對象?他是否可以初始化一個記錄器對象(添加適當的appendors,patterns等),然後完成它,還是必須爲每個網頁完成? – user64141