fb
info@yenlo.com
deu
Menu
WSO2 6 min

Separate Logdateien im WSO2 Enterprise Integrator

WSO2-Produkte verwenden log4j2 für ihr Protokollierungssystem, so dass Sie immer alle aktivierten Protokollierungen aggregiert in wso2carbon.log finden können. Log4j2 ist sehr leistungsfähig und einen Blick wert. In diesem Blog möchten wir einen Teil dieser Protokollierung auf der API-/Proxy-Ebene in eine separate Logdatei abspalten.

Wouter van Wijngaarden
Wouter van Wijngaarden
Integration Consultant
Separate log files

WSO2-Produkte verwenden log4j2 für ihr Protokollierungssystem, so dass Sie immer alle aktivierten Protokollierungen aggregiert in wso2carbon.log finden können. Log4j2 ist sehr leistungsfähig und einen Blick wert. In diesem Blog möchten wir einen Teil dieser Protokollierung auf der API-/Proxy-Ebene in eine separate Logdatei abspalten.

Der WSO2 Micro Integrator 4.1.0 (sowie WSO2 EI) unterstützt die Protokollierung per API oder Proxy in ihre jeweiligen Dateien und ich werde Ihnen zeigen, wie das geht!

WSO2-Produkte verwenden Apache Log4j2, um das Logging der Komponenten innerhalb des Produkts zu ermöglichen. Dies ermöglicht eine Vielzahl von optionalen Anpassungen durch den Benutzer. Weitere Informationen über Apache Log4j2 und die von WSO2 verwendete Version finden Sie in der apache log4j2 Dokumentation.

LOG4J2

Die Konfigurationsdatei für Log4j2 befindet sich im Micro Integrator in [MI-HOME]/conf directory mit dem Dateinamen log4j2.properties. Diese Datei enthält die vom Produkt verwendete grundlegende log4j2-Konfiguration, die Sie dort beliebig modifizieren können. Ich zeige das mit dem Micro Integrator, aber es funktioniert genauso mit dem Enterprise Integrator (6.x.0).

Erstellen wir zwei einfache Proxys, die wir verwenden können. Da der Micro Integrator keinen Echo-Dienst hat, der im Enterprise Integrator standardmäßig enthalten ist, erstelle ich einen sehr einfachen Proxy, der die an ihn gesendete Nachricht mit einem Log Mediator beantwortet.

Ich verwende Integration Studio 8.1.0 für die Bereitstellung und werde auch den eingebetteten Micro Integrator verwenden, der im Lieferumfang des Produkts enthalten ist.

Ich werde nicht die vollständige Installation von Integration Studio zeigen. Sie können es bei WSO2 herunterladen und auf Ihrem Windows-/Mac- oder Linux-Computer installieren.

Lesen Sie sich bitte ein paar unserer Blogs zur Arbeit mit Integration Studio durch.

Integrationsprojekt

Ich verwende ein Integrationsprojekt, um die beiden Proxys zu erstellen. Das Projekt wird Log4J2 heißen, aber Sie können es nennen, wie Sie möchten.

Das Schöne an einem Integrationsprojekt ist, dass es eine Config und einen Composite Exporter erstellt, um die von Ihnen entwickelten Proxys bereitstellen zu können. Ich werde es einfach halten und die vorgeschlagene Benennung der Module basierend auf dem Projektnamen übernehmen.

Separate log files in WSO2

Navigieren Sie zur Projektansicht

Log files - Navigate to project view

Ich erstelle einen neuen Proxy.

Separate logfiles

Ich nenne ihn EchoProxy und verwende die benutzerdefinierte Proxy-Vorlage.

EchoProxy separate log files

Der Inhalt ist einfach gehalten

Full log separating files

Ein vollständiges Protokoll und eine Antwort senden die Nachricht an den Absender zurück.

Der Code ist auch einfach gehalten

<?xml version="1.0" encoding="UTF-8"?>
<proxy name="EchoProxy" startOnLoad="true" transports="http https" xmlns="http://ws.apache.org/ns/synapse">
    <target>
        <inSequence>
            <log level="full"/>
            <respond/>
        </inSequence>
        <outSequence/>
        <faultSequence/>
    </target>
</proxy>

Der zweite Proxy ruft diesen Proxy auf und ist ebenso einfach gehalten.

Separate logfiles in WSO EI

Das ist der Code:

<?xml version="1.0" encoding="UTF-8"?>
<proxy name="CallProxy" startOnLoad="true" transports="http https" xmlns="http://ws.apache.org/ns/synapse">
    <target>
        <endpoint name="Echopoint">
            <address uri="http://localhost:8290/services/EchoProxy">
                <suspendOnFailure>
                    <initialDuration>-1</initialDuration>
                    <progressionFactor>1</progressionFactor>
                </suspendOnFailure>
                <markForSuspension>
                    <retriesBeforeSuspension>0</retriesBeforeSuspension>
                </markForSuspension>
            </address>
        </endpoint>
        <inSequence/>
        <outSequence>
            <log level="full">
                <property name="Log From " value="CallProxy"/>
            </log>
            <send/>
        </outSequence>
        <faultSequence/>
    </target>
</proxy>

separate logfiles WSO Enterprise Integrator

Speichern Sie beide Proxys und wählen Sie im Composite Exporter (pom-Datei) die beiden Artefakte aus. Speichern Sie auch diese Datei.

LOG4J2 Composite Exporter

Fügen Sie den Server hinzu

Da MI 4.1.0 eingebettet ist, sollte es bereits sichtbar sein. Wenn Sie die Registerkarte Server nicht sehen, klicken Sie auf Window (Fenster) / Show View (Ansicht anzeigen) / Other (Sonstiges) und geben Server ein.

Workspace LOG4J2 Composite Exporter
Show view separated logfiles

Klicken Sie auf Öffnen. Klicken Sie mit der rechten Maustaste auf Server und dann auf Hinzufügen und Entfernen.

separate log files wso2 EI

Klicken Sie auf Fertig stellen.

Micro integrator 4.1.0.

Erstellen einer separaten Logdatei für bestimmte Proxy-Dienste

Um die Erstellung einer zusätzlichen Logdatei für einen bestimmten Proxy zu ermöglichen, müssen Sie der Datei log4j2.properties nur ein paar Zeilen hinzufügen. Diese Zeilen enthalten verschiedene Parameter, die ich im Folgenden erläutern werde. Die Datei befindet sich unter [INT810-HOME]/runtime/microesb/conf

Der Appender

Fügen Sie diese Zeilen den log4j2-Eigenschaften als ersten Appender hinzu (also vor # CARBON_CONSOLE)

appender.ECHO_PROXY_APPENDER.type = RollingFile

appender.ECHO_PROXY_APPENDER.name = ECHO_PROXY_APPENDER

appender.ECHO_PROXY_APPENDER.fileName = ${sys:carbon.home}/repository/logs/EchoProxy.log

appender.ECHO_PROXY_APPENDER.filePattern = ${sys:carbon.home}/repository/logs/EchoProxy-%d{MM-dd-yyyy}.log

appender.ECHO_PROXY_APPENDER.layout.type = PatternLayout

appender.ECHO_PROXY_APPENDER.layout.pattern = TID: [%tenantId] [%d] %5p {%c} - %m%ex%n

appender.ECHO_PROXY_APPENDER.policies.type = Policies

appender.ECHO_PROXY_APPENDER.policies.time.type = TimeBasedTriggeringPolicy

appender.ECHO_PROXY_APPENDER.policies.time.interval = 1

appender.ECHO_PROXY_APPENDER.policies.time.modulate = true

appender.ECHO_PROXY_APPENDER.policies.size.type = SizeBasedTriggeringPolicy

appender.ECHO_PROXY_APPENDER.policies.size.size=10MB

appender.ECHO_PROXY_APPENDER.strategy.type = DefaultRolloverStrategy

appender.ECHO_PROXY_APPENDER.strategy.max = 20

appender.ECHO_PROXY_APPENDER.filter.threshold.type = ThresholdFilter

appender.ECHO_PROXY_APPENDER.filter.threshold.level = INFO

appender.CALL_PROXY_APPENDER.type = RollingFile

appender.CALL_PROXY_APPENDER.name = CALL_PROXY_APPENDER

appender.CALL_PROXY_APPENDER.fileName = ${sys:carbon.home}/repository/logs/CallProxy.log

appender.CALL_PROXY_APPENDER.filePattern = ${sys:carbon.home}/repository/logs/EchoProxy-%d{MM-dd-yyyy}.log

appender.CALL_PROXY_APPENDER.layout.type = PatternLayout

appender.CALL_PROXY_APPENDER.layout.pattern = TID: [%tenantId] [%d] %5p {%c} - %m%ex%n

appender.CALL_PROXY_APPENDER.policies.type = Policies

appender.CALL_PROXY_APPENDER.policies.time.type = TimeBasedTriggeringPolicy

appender.CALL_PROXY_APPENDER.policies.time.interval = 1

appender.CALL_PROXY_APPENDER.policies.time.modulate = true

appender.CALL_PROXY_APPENDER.policies.size.type = SizeBasedTriggeringPolicy

appender.CALL_PROXY_APPENDER.policies.size.size=10MB

appender.CALL_PROXY_APPENDER.strategy.type = DefaultRolloverStrategy

appender.CALL_PROXY_APPENDER.strategy.max = 20

appender.CALL_PROXY_APPENDER.filter.threshold.type = ThresholdFilter

appender.CALL_PROXY_APPENDER.filter.threshold.level = INFO

And add the Appender to the list

# list of all appenders

#add entry "syslog" to use the syslog appender

appenders = CARBON_CONSOLE, CARBON_LOGFILE, AUDIT_LOGFILE, ATOMIKOS_LOGFILE, CARBON_TRACE_LOGFILE, osgi, SERVICE_LOGFILE, API_LOGFILE, ERROR_LOGFILE, CORRELATION , ECHO_PROXY_APPENDER

#, syslog

Dies beschreibt den Mechanismus des RollingFile-Appenders und die anderen Mechanismen.

Es sieht folgendermaßen aus

Echo Proxy Apprender

Der Logger

Fügen Sie den Loggern diese Zeile hinzu

, SERVICE_LOGGER_EchoProxy

Und dann dieser Ausschnitt darunter

logger.SERVICE_LOGGER_EchoProxy.name = SERVICE_LOGGER.EchoProxy

logger.SERVICE_LOGGER_EchoProxy.level = INFO

logger.SERVICE_LOGGER_EchoProxy.additivity = false

logger.SERVICE_LOGGER_EchoProxy.appenderRef.ECHO_PROXY_APPENDER.ref = ECHO_PROXY_APPENDER

Es wird so aussehen:

SERVICE LOGGER EchoProxy

Speichern Sie die log4j2-Datei. Starten Sie den Server mit einem Klick auf die rechte Maustaste / Start. Die Änderungen werden sofort bereitgestellt.

Save the log4j2 file

Erstellen Sie ein neues SOAP-Projekt in SoapUI basierend auf http://localhost:8290/services/CallProxy?wsdl

Create a new SOAP project in SoapUI

Öffnen Sie den Dienst

open service Soap project

Und ändern Sie die Nachricht

<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/">

   <soapenv:Header/>

   <soapenv:Body>

            <message>

                  <text>Hello World</text>

            </message>

   </soapenv:Body>

</soapenv:Envelope>

Ausführen. Die Antwort ist identisch.

Separate log files MI 4.0.1.

Rufen Sie den Proxy in SoapUI mehrmals auf.

Gehen Sie nun zu INT810-HOME]/runtime/microesb/repository/logs und sehen Sie sich die neue CALLProxy-Logdatei an.

CALLProxy log file

Öffnen Sie die Datei und sehen Sie sich die darin enthaltenen Protokolle an.

CALLProxy log file

Ich hoffe, dass diese Informationen von nutzen sind und einigen von Ihnen bei ihren projekten helfen. Sollten Sie noch fragen haben, kontaktieren Sie uns bitte.

Whitepaper:
Auswahlhilfe für die vollständige Verwaltung des API-Lebenszyklus

full api
Hol es dir jetzt
deu
Schließen
Was ist auf unserer Speisekarte