2015-02-09 141 views
0

我們正在使用WL enterprise 6.2.0.1開發WL應用程序。我們有四個環境(Dev/QA/UAT和PROD)。在Worklight應用程序中啓用/禁用日誌記錄

我們的應用程序在服務器上記錄用戶憑證(文件:SystemOut.log),這對Dev環境來說是可以接受的。但是,當我們需要將構建移至QA和UAT時,我們需要禁用日誌記錄,因爲這是安全角度,我們無法繼續進行PROD。

我們所做的是我們下面的代碼添加到initOptions.js:

var bEnableConsoleLog = false; // Enable Disable the logging 

var wlInitOptions = { 
... 
... 
... 
logger : { 
    enabled : bEnableConsoleLog},}; 


var disableLogging = function() { 
WL.Logger.info("##### LOG ENABLED ?? => " + bEnableConsoleLog); 

if (bEnableConsoleLog == false) 
{ 
    WL.Logger.config({ 
     enabled : false, 
     level : 'info' 
    }); 

    console.log = function() { 

    }.bind(console.log); 

    console.error = function() { 

    }.bind(console.error); 
} 


}; 

    if (window.addEventListener) { 
    window.addEventListener('load', function() { 
     WL.Client.init(wlInitOptions); 
     disableLogging(); 
    }, false); 
    } else if (window.attachEvent) { 
    window.attachEvent('onload', function() { 
     WL.Client.init(wlInitOptions); 
     disableLogging(); 
    }); 
} 

disableLogging(); 

WL.Logger 
     .info("######################## WL.Logger.info ENABLED ############################"); 
console 
     .log("######################## console.log ENABLED ############################"); 
console 
     .error("######################## console.error ENABLED ############################"); 

通過設置,我們認爲我們可以啓用或禁用日誌記錄的價值var bEnableConsoleLog = (true/false);,但似乎仍然登錄憑據。

有沒有辦法解決這個問題?

回答

2

我不認爲在WL.Logger.config上有一個基於WL.Logger API reference的'enabled'選項。有一個'capture'選項,您可以將其設置爲false,這將禁用保存客戶端日誌並將其發送到服務器。

如果您的客戶端將日誌語句中的用戶憑證記錄下來,那麼只能根據'capture'爲true(默認值)以及您使用的日誌語句處於'level'值或更高值來發送該信息。鑑於上面的WL.Logger.config(),這意味着WL.Logger.info()將被髮送到服務器,並且WL.Logger.debug()不會。欲瞭解更多信息,請參閱Configuring the Worklight Logger

請注意,所有這些僅適用於由客戶端進行的WL.Logger調用。如果您在服務器端代碼中記錄用戶憑證(例如使用Java記錄器),那麼記錄的內容將基於服務器上配置的日誌級別;客戶端日誌配置將不起作用。