Loggning

Bibliotek som används för loggning är org.jboss.logging

Logg-nivåer beskrivs under “10.2. Logging Levels”: Chapter 10. Logging Conventions

Användning i koden:

@Inject Logger log; log.error("Unexpected exception occured when we tried to call CitizenMapping with personId" + personId, exception);

Kom ihåg att skriva ut information som kan vara av nytta vid eventuell felsökning. Inkludera information som gör det möjligt att felsöka problemet i efterhand. Kontexten är väldigt viktig att inkludera i loggningen.

Graylog

Vi skickar loggarna till Graylog och för att konfigurera detta krävs några rader i docker-compose.yml, här kommer ett exempel:

version: '2' services: ms-casemanagementservice-test: container_name: ms-casemanagementservice-test logging: driver: "syslog" options: syslog-address: "udp://172.16.254.6:5140" tag: "ms-casemanagementservice-test"

“tag” ska sättas namnsättas enligt följande format: <applikationsnamn>-<version>

Följande versioner ska användas:

  • production

  • test

  • sandbox

I graylog kan man sedan filtrera loggarna med hjälp av denna tag och loggnivå. Exempel:

source:ms-casemanagementservice-test* && ERROR

Spårningsinformation.

Hur kan vi använda exempelvis OpenTracing och W3C Trace Context. Trace Context för att öka observerbarheten på våra system?

Aggregering och visualisering

Hur samlas loggar och telemetri ihop, hur visualiseras det och hur kan vi använda oss av det för att proaktivt se till att systemet mår bra och reaktivt agera snabbt med bra information när något går fel?