在Worklight应用程序中启用/禁用日志记录

时间:2015-02-09 19:25:49

标签: ibm-mobilefirst

我们正在使用WL enterprise 6.2.0.1开发WL应用程序。我们有四个环境(Dev / QA / UAT和PROD)。

我们的应用程序正在服务器上记录用户凭据(文件: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);,我们认为我们可以启用或禁用日志记录,但它似乎仍在记录凭据。

有没有办法解决这个问题?

1 个答案:

答案 0 :(得分:2)

我不认为有一个'启用' WL.Logger.config上的选项基于WL.Logger API reference。有一个'捕获'您可以设置为false的选项,该选项将禁用保存客户端日志并将其发送到服务器。

如果您的客户端在日志声明中记录用户凭据,那么该信息应仅基于“捕获”信息发送。为true(默认值),并且您使用的日志语句处于'级别'价值或以上。鉴于上面的WL.Logger.config(),这意味着WL.Logger.info()将被发送到服务器,而WL.Logger.debug()则不会。有关详细信息,请参阅Configuring the Worklight Logger

请注意,所有这些仅适用于客户端进行的WL.Logger调用。如果要在服务器端代码中记录用户凭据(例如使用Java记录器),那么记录的内容将基于服务器上配置的日志级别;客户端日志配置将无效。