出于审计目的,我想登录除现有日志文件之外的其他日志文件,例如info,debug,error,warn。我的新日志文件名是AUDIT.log,我想写一个语句为WL.Logger.audit(' ...')重定向到新的日志文件。请建议我该怎么做。
答案 0 :(得分:3)
您可以做的一件事是创建一个使用Java代码的Javascript适配器。设置起来非常简单。
首先创建一个Javascript适配器以将客户端日志上传到。您可以按照知识中心的“服务器准备”文档中的说明进行操作。 https://www.ibm.com/support/knowledgecenter/SSHS8R_7.1.0/com.ibm.worklight.dev.doc/devref/c_uploaded_client_log_data.html?lang=en
然后在LogDownloader.java
文件夹下创建一个Java类。我在包com.sample.customcode
下创建了课程LogDownloader.java
。
在package com.sample.customcode;
import java.io.ByteArrayOutputStream;
import java.io.File;
import java.io.FileOutputStream;
import java.io.FileWriter;
import java.io.IOException;
public class LogDownloader {
public static void download(String deviceInfo, String logMessages) throws IOException {
//Create a new file
File file = new File("audit.log");
//Create the file writer
FileWriter writer = new FileWriter(file);
//Write to the file
writer.write(deviceInfo + "\n");
writer.write(logMessages + "\n");
//Close the stream
writer.flush();
writer.close();
}
}
WLClientLogReceiver
在我的function log(deviceInfo, logMessages) {
com.sample.customcode.LogDownloader.download(JSON.stringify(deviceInfo), JSON.stringify(logMessages));
return {
result: true
};
}
适配器中,我可以使用我的Java调用并使用我想要的参数调用它。如下所示:
var audit = WL.Logger.create({pkg: "AUDIT"});
在服务器端,您可以分析写入日志文件时的方式。您可以选择解析Javascript适配器中的JSON或Java类中的Parse。
如果我想在我的文件中记录特定消息,那么在客户端我将创建一个记录器包
audit.debug("DEBUG");
现在我有一个记录器包我可以打电话:
audit.info("INFO");
audit.error("ERROR");
audit
解析服务器端的客户端日志时,我只会将包名为{{1}}的日志转发到新的服务器日志文件中。
将在服务器的根级别创建新的日志文件。
希望这有帮助。
答案 1 :(得分:0)
没有像WL.Logger.audit()那样的API,但是你可以创建自己的记录器包来实现你正在寻找的差异化。见这里:http://www.ibm.com/support/knowledgecenter/SSHSCD_7.1.0/com.ibm.worklight.dev.doc/apiref/c_configuring_logger.html?lang=en
请点击此处查看更完整的示例代码:http://www.ibm.com/support/knowledgecenter/SSHSCD_7.1.0/com.ibm.worklight.dev.doc/apiref/r_logger_js_module_example.html?lang=en