Logga in Spring Boot Microservices

Blind
3 min readSep 24, 2022

--

Loggning är en viktig del av företagsapplikationer. Loggning hjälper inte bara till att undersöka ett problem utan hjälper också till att bygga relevanta mätvärden. Dessa mått är viktiga ur ett affärsperspektiv. Faktum är att företag skriver servicenivåavtal (SLA) med dessa mätvärden. I det här inlägget kommer vi att prata om inloggning i Spring Boot-baserade Microservices.

Om du är ny på Spring Boot och Microservices kommer jag att rekommendera att läsa om Spring Boot och Microservices.

Varför loggar vi och vad loggar vi?

Produktionsnivåapplikationerna kan misslyckas när som helst av olika anledningar. För att en utvecklare ska undersöka sådana problem i tid, blir det avgörande att ha loggar tillgängliga. Loggar är en nyckel för program att återställa.

Frågan kommer vad loggar vi? Utvecklare, mjukvaruarkitekter investerar tillräckligt med tid för att bestämma vad som ska loggas. Det är lika viktigt att inte logga mycket information. Du vill inte förlora viktig information. Uppenbarligen bör man inte logga någon av PII (Personlig identifierbar information). Ett paradigm som utvecklare kan använda är “Vad hjälper mig att undersöka problem i koden om applikationen misslyckas?”. Speciellt om ett kritiskt affärsbeslut behöver kommentarer i koden är det ett lika genomförbart alternativ att logga det beslutet.

Samtidigt kan man använda ett slumpmässigt genererat spårnings-id i loggarna för att spåra begäran-svaret. Det svåraste är att behålla denna idé under hela programmets liv.

Loggning och observerbarhet

Mikrotjänster kommunicerar med externa API:er, andra mikrotjänster. Hädanefter är det viktigt att logga detaljerna för sådan kommunikation. I händelsestyrda mikrotjänster kan man logga detaljer om händelser. Med molninfrastruktur har det blivit enklare att logga detaljer från mikrotjänster. Molninfrastruktur som AWS erbjuder CloudWatch för att samla in dessa loggar och sedan använda ELK-stacken för att övervaka loggarna. Observerbarhetsverktyg som New Relic, Sumo Logic ansluter dock till olika molninfrastrukturer. De samlar in loggar och erbjuder flexibilitet att visa, fråga och bygga mätvärden baserade på loggar.

Följaktligen har utvecklare tillräckligt med verktyg för att logga data från applikationer för att förbättra spårbarhet och felsökning.

Logga in Spring Boot-baserade mikrotjänster

Låt oss titta på inloggningen i en Spring Boot-baserad mikrotjänst. Vi kommer att skapa en enkel mikrotjänst och visa vilken typ av loggningskonfiguration vi kan använda.

Vår huvudklass ser ut som nedan:

package com.betterjavacode.loggingdemo;import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
@SpringBootApplication
public class LoggingdemoApplication {
public static void main(String[] args) {
SpringApplication.run(LoggingdemoApplication.class, args);
}
}

I grund och botten har mikrotjänsten ingenting för tillfället. Oavsett så har vi en huvudklass och vi får se hur loggningen kommer in i bilden.

Som en del av applikationen har jag inkluderat ett enda beroende

implementation 'org.springframework.boot:spring-boot-starter-web'

Detta beroende inkluderar även spring-boot-starter-logging . spring-boot-starter-logging är en standardloggningskonfiguration som Spring Boot erbjuder. Vi kommer att undersöka mer detaljer.

Standardloggningskonfiguration

spring-boot-stater-logging beroende inkluderar slf4j som en skogsfasad med logback som ramverk för loggning.

  1. Kryptera och dekryptera i Java
  2. Spring Security OAuth2 Exempel
  3. Ej lösbar överordnad POM:Det gick inte att överföra artefakter när man försökte hänvisa till en överordnad pom från en underordnad pom med ${parent.groupid}
  4. alternativ till if-sats i java
  5. Java Bootstrap:Dropwizard vs Spring Boot

--

--