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 | ||||
---|---|---|---|---|
| ||||
<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 | ||||
---|---|---|---|---|
| ||||
<!-- Level INFO will give log output for reset cache to selected appender --> <logger name="se.skl.tp.vp.vagvalagent.VagvalAgent"> <level value="INFO"/> </logger> |
...
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 | ||
---|---|---|
| ||
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:
Namn | Beskrivning |
---|---|
logReqIn | Används för inkommande anrop |
logReqOut | Används för utgående svar |
monitorLogRequest | Används för aktiv övervakning och utgående request |
monitorLogResponse | Anvä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 | ||
---|---|---|
| ||
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.
...