Logging Worklight自定义记录器
出于审核目的,我希望登录到现有日志文件以外的其他日志文件,如info、debug、error、warn。我的新日志文件名是AUDIT.log,我想写一个语句WL.Logger.AUDIT(“…”),以重定向到新日志文件。请建议我怎么做。没有像WL.Logger.audit()这样的API,但是您可以创建自己的日志程序包,以实现您想要的差异化。请看这里:Logging Worklight自定义记录器,logging,ibm-mobilefirst,Logging,Ibm Mobilefirst,出于审核目的,我希望登录到现有日志文件以外的其他日志文件,如info、debug、error、warn。我的新日志文件名是AUDIT.log,我想写一个语句WL.Logger.AUDIT(“…”),以重定向到新日志文件。请建议我怎么做。没有像WL.Logger.audit()这样的API,但是您可以创建自己的日志程序包,以实现您想要的差异化。请看这里: 请参阅此处以获取更完整的示例代码:您可以做的一件事是创建一个使用Java代码的Javascript适配器。设置起来很简单 首先创建一个Javas
请参阅此处以获取更完整的示例代码:您可以做的一件事是创建一个使用Java代码的Javascript适配器。设置起来很简单 首先创建一个Javascript适配器,将客户端日志上载到。您可以按照知识中心服务器准备文档中的说明进行操作。 然后在
server/lib
文件夹下创建一个Java类。我在包com.sample.customcode
下创建了类LogDownloader.java
在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
适配器中,我可以使用Java调用并使用我想要的参数调用它。如下图所示:
function log(deviceInfo, logMessages) {
com.sample.customcode.LogDownloader.download(JSON.stringify(deviceInfo), JSON.stringify(logMessages));
return {
result: true
};
}
在服务器端,您可以在写入日志文件时解析您想要的方式。您可以选择在Javascript适配器内解析JSON,也可以在Java类内解析JSON
如果我想在我的文件中记录特定的消息,那么在客户端我将创建一个记录器包
var audit=WL.Logger.create({pkg:“audit”})代码>
现在我有了一个记录器软件包,可以调用:
audit.debug(“调试”)代码>
audit.info(“info”)代码>
audit.error(“错误”)代码>
在服务器端解析客户端日志时,我只会将包名为audit
的日志转发到新的服务器日志文件
新日志文件将在服务器的根级别创建
希望这有帮助