2015-02-09 100 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记录器),那么记录的内容将基于服务器上配置的日志级别;客户端日志配置将不起作用。