Dnevnici Tomcat ugrađenih u proljetne čizme

1. Uvod

Spring Boot dolazi s ugrađenim Tomcat poslužiteljem, što je vrlo zgodno. Međutim, prema zadanim postavkama ne možemo vidjeti Tomcatove zapisnike.

U ovom uputstvu naučit ćemo kako konfigurirajte Spring Boot tako da prikazuje Tomcatove interne i pristupne zapisnike putem aplikacije za igračke.

2. Primjer uzorka

Prije svega, kreirajmo REST API. Definirat ćemo a PozdravController da pozdravite korisnika:

@GetMapping ("/ greetings / {username}") javni niz getGreetings (@PathVariable ("username") String userName) {return "Hello" + userName + ", Good day ... !!!"; }

3. Vrste Tomcat dnevnika

Ugrađeni Tomcat pohranjuje dvije vrste zapisnika:

  • Pristup dnevnicima
  • Unutarnji zapisnici poslužitelja

The pristupni dnevnici voditi evidenciju svih zahtjeva koje obrađuje aplikacija. Ovi se dnevnici mogu koristiti za pratiti stvari poput broja pogodaka stranice i aktivnost korisničke sesije. U kontrastu, unutarnji zapisnici poslužitelja pomoći će nam riješiti probleme u našoj pokrenutoj aplikaciji.

4. Pristup dnevnicima

Zapisnici pristupa nisu omogućeni.

Ipak ih možemo lako omogućiti dodavanjem svojstva primjena.svojstva:

server.tomcat.accesslog.enabled = true

Slično tome, možemo koristiti VM argumente za omogućavanje dnevnika pristupa:

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

Te će se datoteke dnevnika kreirati u privremenom direktoriju. Na primjer, u sustavu Windows, direktorij dnevnika pristupa izgledat će otprilike AppData \ Local \ Temp \ tomcat.2142886552084850151.40123 \ logs

4.1. Format

Dakle, s omogućenim ovim svojstvom, u našoj pokrenutoj aplikaciji vidjet ćemo nešto poput sljedećeg:

0: 0: 0: 0: 0: 0: 0: 1 - - [13 / Svibanj / 2019: 23: 14: 51 +0530] "GET / pozdrav / Harry HTTP / 1.1" 200 27 0: 0: 0: 0: 0: 0: 0: 1 - - [13 / svibanj / 2019: 23: 17: 23 +0530] "GET / greetings / Harry HTTP / 1.1" 200 27

Ovo su pristupni dnevnici i imaju format:

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

Što možemo protumačiti kao:

% h - IP klijenta koji je poslao zahtjev, 0:0:0:0:0:0:0:1 u ovom slučaju

% l - identitet korisnika

% u - korisničko ime određeno HTTP autentifikacijom

% t - vrijeme primitka zahtjeva

% r - redak zahtjeva klijenta, GET / pozdrav / Harry HTTP / 1.1 u ovom slučaju

%> s - statusni kôd poslan s poslužitelja klijentu, poput 200 ovdje

% b - veličina odgovora klijentu ili 27 za ove zahtjeve

Budući da ovaj zahtjev nije imao autentificiranog korisnika, % l i% u otisnute crtice.

Zapravo, ako ako nedostaju bilo kakve informacije, Tomcat će ispisati crticu za taj utor.

4.2. Prilagođavanje dnevnika pristupa

Možemo nadjačati zadanu konfiguraciju Spring Boot dodavanjem nekoliko svojstava u primjena.svojstva.

Prvo, da biste promijenili zadani naziv datoteke dnevnika:

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

Također, možemo promijeniti mjesto datoteka dnevnika:

server.tomcat.basedir = tomcat server.tomcat.accesslog.directory = zapisnici

Konačno, možemo nadjačati način zapisovanja dnevnika u datoteku dnevnika:

server.tomcat.accesslog.pattern = uobičajeno

U Spring Boot-u postoji još nekoliko konfigurabilnih svojstava.

5. Unutarnji dnevnici

Interni dnevnici Tomcat poslužitelja vrlo su korisni za rješavanje bilo kakvih problema na strani poslužitelja.

Da bismo pregledali ove zapisnike, u nastavku moramo dodati konfiguraciju prijave primjena.svojstva:

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

A onda ćemo vidjeti nešto poput:

2019-05-17 15: 41: 07.261 DEBUG 31160 --- [0124-Acceptor-0] o.apache.tomcat.util.threads.LimitLatch: Odbrojavanje [http-nio-40124-Acceptor-0] zasun = 1 2019-05-17 15: 41: 07.262 DEBUG 31160 --- [0124-Acceptor-0] o.apache.tomcat.util.threads.LimitLatch: Odbrojavanje [http-nio-40124-Acceptor-0] zasun = 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 ... 2019-05-17 15: 41: 07.279 DEBUG 31160 --- [io-40124-exec-1] mmMbeansDescriptorsIntrospectionSource: Introspected attribute virtualHost public java.lang.String org.apache. coyote.RequestInfo.getVirtualHost () null ... 2019-05-17 15: 41: 07.280 DEBUG 31160 --- [io-40124-exec-1] oatomcat.util.modeler.BaseModelMBean: preRegister [email protected] Tomcat : type = RequestProcessor, worker = "http-nio-40124", name = HttpRequest1 2019-05-17 15: 41: 07.292 DEBUG 31160 --- [io-40124-exec-1] org.apache.tomcat.util. http.Parameters: Postavi que ry kodiranje niza na UTF-8 2019-05-17 15: 41: 07.294 DEBUG 31160 --- [io-40124-exec-1] oatutil.http.Rfc6265CookieProcessor: Cookies: Raščlanjivanje b []: jenkins-timestamper-offset = -19800000 2019-05-17 15: 41: 07.296 DEBUG 31160 --- [io-40124-exec-1] oacauthenticator.AuthenticatorBase: Zahtjev za sigurnosnu provjeru GET / greetings / Harry 2019-05-17 15: 41: 07.296 DEBUG 31160 --- [io-40124-exec-1] org.apache.catalina.realm.RealmBase: Nisu definirana primjenjiva ograničenja

6. Zaključak

U ovom kratkom članku naučili smo razliku između Tomcat-ovih internih i pristupnih dnevnika. Zatim smo vidjeli kako ih omogućiti i prilagoditi.

Obavezno provjerite uzorak na GitHubu.


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