Worklight自定义记录器

时间:2016-04-08 03:23:23

标签: logging ibm-mobilefirst

出于审计目的,我想登录除现有日志文件之外的其他日志文件,例如info,debug,error,warn。我的新日志文件名是AUDIT.log,我想写一个语句为WL.Logger.audit(' ...')重定向到新的日志文件。请建议我该怎么做。

2 个答案:

答案 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

相关问题