2016-04-08 5 views
2

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

3

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.