fb
info@yenlo.com
ned
Menu
WSO2 Enterprise Integrator 6 min

Afzonderlijke logbestanden in WSO2 Enterprise Integrator

WSO2 producten gebruiken log4j2 voor hun logsysteem, dus je kunt altijd alle ingeschakelde logging samengevoegd vinden in de wso2carbon.log. Log4j2 is zeer krachtig en het bekijken waard. In deze blog willen we een deel van deze logging op API/Proxy-niveau splitsen naar een apart logbestand.

Wouter-van-Wijngaarden.jpg
Wouter van Wijngaarden
Integration Consultant
Separate log files in WSO2 Enterprise Integrator

WSO2 producten gebruiken log4j2 voor hun logsysteem, dus je kunt altijd alle ingeschakelde logging samengevoegd vinden in de wso2carbon.log. Log4j2 is zeer krachtig en het bekijken waard. In deze blog willen we een deel van deze logging op API/Proxy-niveau splitsen naar een apart logbestand.

De WSO2 Micro Integrator 4.1.0 (evenals WSO2 EI) ondersteunt logging per API of Proxy in hun respectievelijke bestanden en ik ben hier om je te vertellen hoe je dat doet!

WSO2 producten gebruiken Apache Log4j2 om logging van de componenten in het product mogelijk te maken, dit laat veel optionele aanpassingen door de gebruiker toe. Voor meer informatie over Apache Log4j2 en de versie die WSO2 gebruikt kun je de apache log4j2 documentatie raadplegen.

LOG4J2

Binnen de Micro Integrator bevindt het configuratiebestand voor Log4j2 zich in de [MI-HOME]/conf directory met de bestandsnaam log4j2.properties. Dit bestand bevat de basisconfiguratie van log4j2 die door het product wordt gebruikt en van hieruit kun je deze naar wens wijzigen. Ik laat dit zien met de Micro Integrator, maar het werkt ook op de Enterprise Integrator (6.x.0).

Laten we twee eenvoudige proxy’s maken die we kunnen gebruiken. Omdat de Micro Integrator niet beschikt over de Echo Service die standaard beschikbaar is op de Enterprise Integrator, maak ik een heel eenvoudige proxy die het bericht dat er naar toe wordt gestuurd beantwoordt met een Log Mediator.

Ik gebruik Integration Studio 8.1.0 om dit te implementeren en ga ook de geïntegreerde Micro Integrator gebruiken die bij het product wordt geleverd.

Ik ga niet volledig laten zien hoe je Integration Studio installeert, je kunt het downloaden van WSO2 en installeren op je apparaat met Windows/Mac of Linux.

Bekijk enkele van onze blogs over het werken met Integration Studio of bezoek een van onze trainingen.

Integratieproject

Ik gebruik een integratieproject om de twee proxy’s te maken. Het project zal Log4J2 heten, maar je kunt het noemen zoals je wilt.

Het mooie van een integratieproject is dat het een config en composite exporter maakt om de proxies die je ontwikkelt te kunnen inzetten. Ik ga het eenvoudig houden en ga uit van de voorgestelde naamgeving van de modules op basis van de projectnaam.

Separate log files in WSO2

Navigeer naar projectweergave

Log files - Navigate to project view

Ik ben een nieuwe proxy aan het maken.

Separate logfiles

Ik noem het EchoProxy en gebruik de Custom Proxy-template.

EchoProxy separate log files

De inhoud is eenvoudig

Full log separating files

Een volledige log en een Respond sturen het bericht terug naar de afzender.

De code is ook eenvoudig

<?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>

De tweede proxy roept deze proxy aan en is even eenvoudig.

Separate logfiles in WSO EI

Dit is de 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

Sla beide proxy’s op en in de Composite Exporter (het pom-bestand) Selecteer de twee Artifacts. Sla ook dit bestand op.

LOG4J2 Composite Exporter

Voeg de server toe

Omdat er een geïntegreerde MI 4.1.0 is, zou die al zichtbaar moeten zijn. Als je het tabblad Server niet ziet, klik dan op Window/Show View/Other en typ server in.

Workspace LOG4J2 Composite Exporter
Show view separated logfiles

Klik op Open. Klik met de rechtermuisknop op de server en Add en Remove.

separate log files wso2 EI

Klik op Finish.

Micro integrator 4.1.0.

Een apart logbestand maken voor aangewezen proxyservices

Om het aanmaken van een extra logbestand voor een specifieke proxy mogelijk te maken hoef je maar een paar regels toe te voegen aan het bestand log4j2.properties. Deze regels bevatten verschillende parameters die ik hieronder zal toelichten. Het bestand is te vinden op [INT810-HOME]/runtime/microesb/conf

De Appender

Voeg deze regels toe aan de log4j2-eigenschappen als eerste appender (dus vóór # 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

Dit beschrijft het mechanisme van de RollingFile-appender en de andere mechanismen.

Het ziet er zo uit

Echo Proxy Apprender

De logger

Voeg deze regel toe aan de loggers

, SERVICE_LOGGER_EchoProxy

En deze snippet er vervolgens onder

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

Het zal er als volgt uitzien:

SERVICE LOGGER EchoProxy

Sla het log4j2-bestand op. Start de server met rechtermuisknop/Start. De wijzigingen worden direct doorgevoerd.

Save the log4j2 file

Maak een nieuw SOAP-project in SoapUI op basis van dehttp://localhost:8290/services/CallProxy?wsdl

Create a new SOAP project in SoapUI

Open de service

open service Soap

En verander het bericht

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

   <soapenv:Header/>

   <soapenv:Body>

            <message>

                  <text>Hello World</text>

            </message>

   </soapenv:Body>

</soapenv:Envelope>

Voer uit. De response is identiek.

Afzonderlijke log files MI 4.0.1.

Roep in SoapUI de proxy een aantal keren aan.

Ga nu naar INT810-HOME]/runtime/microesb/repository/logs en bekijk het nieuwe CALLProxy-logbestand

CALLProxy log file

Open het bestand en bekijk de logs erin.

CALLProxy log file

Ik hoop dat deze informatie van waarde is en een aantal van jullie helpt met projecten. Mochten er vragen zijn, neem contact op met ons.

Whitepaper:
Full API Lifecycle Management keuzegids

whitepaper hero full api
Download nu
ned
Sluiten
Wat staat er op ons menu