Jämförda versioner

Nyckel

  • Dessa rader lades till.
  • Denna rad togs bort.
  • Formateringen ändrades.

Innehållsförteckning

UNDER UPPBYGGNAD!

Applikationsloggar

Virtualiseringsplattformens applikationsloggar återfinns default under <MULE-HOME>/logs/mule-app-vp.log.

Konfiguration av applikationsloggar i Runtime

För att konfigurera loggning i VP under runtime (applikation i drifts) behöver dess log4j.xml (mule 3.3.1) eller log4j2.xml (mule 3.7.0) uppdateras. Observera att en ändring i log4j.xml slår direkt, dvs inga omstarter av applikationer eller mule. Detta gäller generellt inte i mule 3.7.0 med log4j2.xml. Man kan istället använda jmx för att ändra i runtime.

...

Nedan exempel definierar en storlek på loggar med 50MB och att 10 filer skall sparas innan den äldsta tas bort.

Kodblock
languagexml
titleMule 3.2.1 och log4j.xml
 <appender name="ROLLINGFILE" class="org.apache.log4j.RollingFileAppender">
        <param  name="file" value="${mule.home}/logs/mule-app-vp.log"/>
        <param name="MaxBackupIndex" value="10" />
        <param name="MaxFileSize" value="50MB" />
        <layout class="org.apache.log4j.PatternLayout">
        	 <param name="ConversionPattern" value="%d %-5p %-30C - %m%n" />
        </layout>
    </appender>

...

Det finns ockås möjligheter att under runtime (applikation i drift) uppdatera lognivåer på specifika delar av applikationen. Detta görs genom att ändra lognivå (TRACE, DEBUG, INFO, WARN, ERROR, FATAL), där TRACE loggar detaljerat och FATAL loggar enbart fel.

Kodblock
languagexml
titleMule 3.3.1 och log4j.xml
  <!-- Level INFO will give log output for reset cache to selected appender -->
  <logger name="se.skl.tp.vp.vagvalagent.VagvalAgent">
     <level value="INFO"/>
  </logger>


Kodblock
languagexml
titleMule 3.7.0 och log4j2.xml
		<!-- Level INFO will give log output for reset cache -->
		<AsyncLogger name="se.skl.tp.vp.vagvalagent.VagvalAgent" level="INFO"/>


Viktigt är att förändringar i konfiguration för loggning återrapporteras till applikationsförvaltning så att förändringen införs permanent i kommande releaser.

Konfiguration av applikationsloggar i källkod

Skulle det finnas behov av att uppdatera inställningar för loggning i källkoden, tex om det finns en inställning som är felaktig eller där det finns inställningar som borde vara default. I detta fallet behöver källkoden för VP uppdateras med de nya inställningarna för att komma med i nästa release. För att få med en sådan permanent ändring skapa ett ärende i Jira och beskriv ändringen.

Asynkron loggning av meddelanden

För att avlasta så mycket som möjligt så kan loggning asynkront till meddelandeköer användas, och implementationen är baserad på soi-toolkit och Apache ActiveMQ.

...

Kodblock
		<AsyncLogger name="se.skl.tp.vp.vagvalagent.VagvalAgent" level="INFO"/>

Meddelande logpost

Själva nyckeln till en loggpost är en korrelationsidentitet på formatet UUID. Denna identitet exponeras också till konsumenter och producenter via en HTTP header x-skltp-correlation-id, vilket möjliggör att snabbt kunna hitta till exakt rätt loggpost för enskilda händelser.

...

Kodblock
titleExempel på riktiga log events från mule-app-vp.log
2014-04-03 09:09:24,852 DEBUG org.mule.module.logging.DispatchingLogger - soi-toolkit.log
** logEvent-debug.start ***********************************************************
IntegrationScenarioId=
ContractId=
LogMessage=xreq-in
ServiceImpl=vagval-dynamic-routing-flow
Host=svr-vp-qa (192.168.16.210)
ComponentId=vp-services-2.2.6-RC2
Endpoint=https://192.168.16.210:20000/vp/Ping/1/rivtabp20
MessageId=e34228dd-bafe-11e3-8954-8120699098bb
BusinessCorrelationId=e342ec3a-bafe-11e3-8954-8120699098bb
BusinessContextId=
ExtraInfo=
-senderid=HSASERVICES-100M
-originalServiceconsumerHsaid=null
-source=se.skl.tp.vp.util.LogTransformer
-cxf_service=urn:riv:itinfra:tp:Ping:1:rivtabp20
-rivversion=RIVTABP20
-senderIpAdress=172.16.0.10
-wsdl_namespace=urn:riv:itinfra:tp:Ping:1:rivtabp20
-receiverid=Ping
Payload=<?xml version='1.0' encoding='UTF-8'?><soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:add="http://www.w3.org/2005/08/addressing" xmlns:urn="urn:riv:itinfra:tp:PingResponder:1">
   <soapenv:Header>
      <add:To>Ping</add:To>
   </soapenv:Header>
   <soapenv:Body>
      <urn:ping>
         <urn:pingIn/>
      </urn:ping>
   </soapenv:Body>
</soapenv:Envelope>
** logEvent-debug.end *************************************************************

** logEvent-debug.start ***********************************************************
IntegrationScenarioId=
ContractId=
LogMessage=xresp-out
ServiceImpl=vagval-dynamic-routing-flow
Host=svr-vp-qa (192.168.16.210)
ComponentId=vp-services-2.2.6-RC2
Endpoint=https://192.168.16.210:20000/vp/Ping/1/rivtabp20
MessageId=e3455c43-bafe-11e3-8954-8120699098bb
BusinessCorrelationId=e342ec3a-bafe-11e3-8954-8120699098bb
BusinessContextId=
ExtraInfo=
-senderid=HSASERVICES-100M
-originalServiceconsumerHsaid=HSASERVICES-100M
-source=se.skl.tp.vp.util.LogTransformer
-cxf_service=urn:riv:itinfra:tp:Ping:1:rivtabp20
-rivversion=RIVTABP20
-senderIpAdress=172.16.0.10
-wsdl_namespace=urn:riv:itinfra:tp:Ping:1:rivtabp20
-time.producer=14
-endpoint_url=http://localhost:10000/test/Ping_Service
-receiverid=Ping
Payload=<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"><soap:Header><mule:header xmlns:mule="http://www.muleumo.org/providers/soap/1.0"><mule:MULE_CORRELATION_ID>e34228dd-bafe-11e3-8954-8120699098bb</mule:MULE_CORRELATION_ID><mule:MULE_CORRELATION_GROUP_SIZE>1</mule:MULE_CORRELATION_GROUP_SIZE><mule:MULE_CORRELATION_SEQUENCE>-1</mule:MULE_CORRELATION_SEQUENCE></mule:header></soap:Header><soap:Body><pingResponse xmlns="urn:riv:itinfra:tp:PingResponder:1" xmlns:ns2="http://www.w3.org/2005/08/addressing"><pingUt>Ping response from: </pingUt></pingResponse></soap:Body></soap:Envelope>
** logEvent-debug.end *************************************************************

Loggpunkter

Loggposter skapas med hjälp av Mule transformatorer och i flödet för virtuella tjänster och aktiv övervakning ligger dessa som loggpunkter i standardflödena, och i den inbäddade Mule konfigurationen vp-common.xml finns 4 namngivna transformatorer för logg ändamål:

NamnBeskrivning
logReqInAnvänds för inkommande anrop
logReqOutAnvänds för utgående svar
monitorLogRequestAnvänds för aktiv övervakning och utgående request
monitorLogResponseAnvänds för aktiv övervakning och inkommande svar

Konfigurera asynkron loggning med ActiveMQ

Inställningar för ActiveMQ anges i gängse konfigurationsfil vp-config.properties och följande standardinställningar används:

Info
iconfalse

SOITOOLKIT_MULE_AMQ_BROKER_URL=failover:(tcp://localhost:61616)

SOITOOLKIT_MULE_AMQ_MAX_REDELIVERIES=3

SOITOOLKIT_MULE_AMQ_REDELIVERY_DELAY=10000

SOITOOLKIT_MULE_AMQ_NO_OF_CONSUMERS=2


 Socketloggning (fr.o.m VP 3.2.0)

En logger är konfigurerad för att ta hand om loggning till socket i log4j2.xml . Denna använder en egenutvecklad appender som kan konfigureras i filen "${sys:mule.home}/conf/vp-socketappender.properties" till vilken server/port den skall logga, se SKLTP VP (Mule) - Konfiguration. Om inget är konfigurerat i filen eller den saknas kommer loggningen vara avslagen.

...