Spring Boot Embedded Tomcat Logs

1. Introduktion

Spring Boot leveres med en integreret Tomcat-server, som er super praktisk. Vi kan dog ikke se Tomcats logfiler som standard.

I denne vejledning lærer vi, hvordan man gør det konfigurer Spring Boot til at vise Tomcats interne log og logfiler via en legetøjsapplikation.

2. Eksempel på anvendelse

Lad os først og fremmest oprette en REST API. Vi definerer en Hilsen Kontrol at hilse på brugeren:

@GetMapping ("/ hilsner / {brugernavn}") offentlig String getGreetings (@PathVariable ("brugernavn") String brugernavn) {return "Hej" + brugernavn + ", God dag ... !!!"; }

3. Tomcat-logtyper

Embedded Tomcat gemmer to typer logfiler:

  • Adgangslogfiler
  • Interne serverlogfiler

Det adgangslogfiler opbevare fortegnelser over alle anmodninger, der behandles af ansøgningen Disse logfiler kan bruges til spore ting som antal antal sider og bruger session aktivitet. I modsætning, interne serverlogfiler vil hjælpe os med at foretage fejlfinding af eventuelle problemer i vores kørende applikation.

4. Adgangslogfiler

Adgangslogfiler er som standard ikke aktiveret.

Vi kan dog let aktivere dem ved at tilføje en ejendom til application.properties:

server.tomcat.accesslog.enabled = sand

På samme måde kan vi bruge VM-argumenter til at aktivere adgangslogfiler:

java -jar -Dserver.tomcat.basedir = tomcat -Dserver.tomcat.accesslog.enabled = sand app.jar

Disse logfiler oprettes i en midlertidig mappe. For eksempel vil biblioteket med adgangslogfiler på Windows ligne noget på Windows AppData \ Local \ Temp \ tomcat.2142886552084850151.40123 \ logs

4.1. Format

Så med denne egenskab aktiveret, ville vi se noget som følgende i vores kørende applikation:

0: 0: 0: 0: 0: 0: 0: 1 - - [13 / Maj / 2019: 23: 14: 51 +0530] "FÅ / hilsen / Harry HTTP / 1.1" 200 27 0: 0: 0: 0: 0: 0: 0: 1 - - [13 / Maj / 2019: 23: 17: 23 +0530] "GET / hilsner / Harry HTTP / 1.1" 200 27

Disse er adgangslogfiler, og de har formatet:

% h% l% u% t \ "% r \"%> s% b

Som vi kan fortolke som:

% h - klientens IP, som har sendt anmodningen 0:0:0:0:0:0:0:1 I dette tilfælde

% l - brugerens identitet

% u - brugernavnet bestemt af HTTP-godkendelse

% t - tidspunktet for anmodningens modtagelse

% r - anmodningslinjen fra klienten FÅ / hilsner / Harry HTTP / 1.1 I dette tilfælde

%> s - statuskoden sendt fra serveren til klienten, ligesom 200 her

% b - størrelsen af ​​svaret til klienten, eller 27 til disse anmodninger

Da denne anmodning ikke havde en godkendt bruger, % l og% u trykte bindestreger.

Faktisk hvis mangler nogen oplysninger, vil Tomcat udskrive en bindestreg til den plads.

4.2. Tilpasning af adgangslogfiler

Vi kan tilsidesætte standard Spring Boot-konfiguration ved at tilføje få egenskaber i application.properties.

For det første for at ændre standardlogfilnavnet:

server.tomcat.accesslog.suffix = .log server.tomcat.accesslog.prefix = access_log server.tomcat.accesslog.file-date-format = .yyyy-MM-dd

Vi kan også ændre placeringen af ​​logfilerne:

server.tomcat.basedir = tomcat server.tomcat.accesslog.directory = logfiler

Endelig kan vi tilsidesætte den måde, hvorpå logfiler skrives i logfilen:

server.tomcat.accesslog.pattern = fælles

Der er også et par mere konfigurerbare egenskaber i Spring Boot.

5. Interne logfiler

Tomcat-serverens interne logfiler er meget nyttige til at løse problemer på serversiden.

For at se disse logfiler skal vi tilføje nedenstående logningskonfiguration i application.properties:

logging.level.org.apache.tomcat = DEBUG logging.level.org.apache.catalina = DEBUG

Og så ser vi noget som:

2019-05-17 15: 41: 07.261 DEBUG 31160 --- [0124-Acceptor-0] o.apache.tomcat.util.threads.LimitLatch: Optælling [http-nio-40124-Acceptor-0] latch = 1 2019-05-17 15: 41: 07.262 DEBUG 31160 --- [0124-Acceptor-0] o.apache.tomcat.util.threads.LimitLatch: Optælling [http-nio-40124-Acceptor-0] latch = 2 2019-05-17 15: 41: 07.278 DEBUG 31160 --- [io-40124-exec-1] org.apache.tomcat.util.modeler.Registry: Managed = Tomcat: type = RequestProcessor, worker = "http-nio -40124 ", name = HttpRequest1 ... 17.05.2019 15: 41: 07.279 DEBUG 31160 --- [io-40124-exec-1] mmMbeansDescriptorsIntrospectionSource: Introspected attribute virtualHost public java.lang.String org.apache. coyote.RequestInfo.getVirtualHost () null ... 17-05-2019 15: 41: 07.280 DEBUG 31160 --- [io-40124-exec-1] oatomcat.util.modeler.BaseModelMBean: preRegister [email protected] Tomcat : type = RequestProcessor, arbejdstager = "http-nio-40124", navn = HttpRequest1 17-05-2019 15: 41: 07.292 DEBUG 31160 --- [io-40124-exec-1] org.apache.tomcat.util. http Parametre: Indstil que ry streng kodning til UTF-8 17.05.2019 15: 41: 07.294 DEBUG 31160 --- [io-40124-exec-1] oatutil.http.Rfc6265CookieProcessor: Cookies: Parsing b []: jenkins-timestamper-offset = -19800000 17-05-2019 15: 41: 07.296 DEBUG 31160 --- [io-40124-exec-1] oacauthenticator.AuthenticatorBase: Sikkerhedskontrolanmodning GET / hilsner / Harry 2019-05-17 15: 41: 07.296 DEBUG 31160 --- [io-40124-exec-1] org.apache.catalina.realm.RealmBase: Ingen gældende begrænsninger defineret

6. Konklusion

I denne hurtige artikel har vi lært forskellen mellem Tomcats interne log og log. Derefter så vi, hvordan vi aktiverer og tilpasser dem.

Sørg for at tjekke prøven på GitHub.


$config[zx-auto] not found$config[zx-overlay] not found