我们正在使用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);
,我们认为我们可以启用或禁用日志记录,但它似乎仍在记录凭据。
有没有办法解决这个问题?
答案 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记录器),那么记录的内容将基于服务器上配置的日志级别;客户端日志配置将无效。