Für einen Audit-Zweck möchte ich in einer anderen Protokolldatei als die vorhandenen Protokolldateien wie Info, Debug, Fehler, Warnung anmelden. Mein neuer Protokolldateiname wäre AUDIT.log und ich möchte eine Anweisung als WL.Logger.audit ('...') schreiben, um auf die neue Protokolldatei umzuleiten. Bitte schlagen Sie vor, wie kann ich es tun.Worklight benutzerdefinierte Logger
Antwort
Es gibt keine solche API wie WL.Logger.audit(), aber Sie können Ihr eigenes Logger-Paket erstellen, um die gewünschte Differenzierung zu erreichen. Siehe hier: http://www.ibm.com/support/knowledgecenter/SSHSCD_7.1.0/com.ibm.worklight.dev.doc/apiref/c_configuring_logger.html?lang=en
Sehen Sie hier für ein vollständigeres Beispiel-Code: http://www.ibm.com/support/knowledgecenter/SSHSCD_7.1.0/com.ibm.worklight.dev.doc/apiref/r_logger_js_module_example.html?lang=en
Eine Sache, die Sie tun können, ist ein Javascript-Adapter erstellen, die Java-Code verwenden. Es ist ziemlich einfach einzurichten.
Erstellen Sie zuerst einen Javascript-Adapter, um Ihre Client-Protokolle zu übertragen. Sie können den Anweisungen aus dem Dokument Servervorbereitung im Knowledge Center folgen. https://www.ibm.com/support/knowledgecenter/SSHS8R_7.1.0/com.ibm.worklight.dev.doc/devref/c_uploaded_client_log_data.html?lang=en
Dann erstellen Sie eine Java-Klasse unter dem Ordner server/lib
. Ich habe die Klasse LogDownloader.java
unter dem Paket com.sample.customcode
erstellt.
Im Inneren des 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();
}
}
In meinem WLClientLogReceiver
Adapter kann ich meine Java ruft verwenden und es mit den Parametern aufrufen ich will. Wie unten:
Auf der Serverseite können Sie pars, wie Sie möchten, wenn Sie in Ihre Protokolldatei schreiben. Sie haben die Möglichkeit, den JSON innerhalb Ihres Javascript-Adapters oder Parse innerhalb Ihrer Java-Klasse zu analysieren.
Wenn ich, ich würde erstellen Loggers Paket
var audit = WL.Logger.create({pkg: "AUDIT"});
Nun, da ich ein Logger Paket habe ich anrufen kann bestimmte Nachrichten in meiner Datei dann auf der Client-Seite anmelden wollte:
audit.debug("DEBUG");
audit.info("INFO");
audit.error("ERROR");
Bei der syntaktischen Analyse des Clients auf der Serverseite würde ich nur Protokolle mit dem Paketnamen audit
an die neue Serverprotokolldatei weiterleiten.
Die neue Protokolldatei wird auf der Stammebene Ihres Servers erstellt.
Hoffe, das hilft.