Jarné zavádzanie vložených protokolov Tomcat

1. Úvod

Spring Boot sa dodáva so zabudovaným serverom Tomcat, ktorý je veľmi praktický. Predvolene však nevidíme denníky Tomcatu.

V tomto tutoriále sa dozvieme, ako na to nakonfigurujte Spring Boot tak, aby zobrazoval interné a prístupové protokoly Tomcat prostredníctvom aplikácie hračky.

2. Ukážka aplikácie

Najskôr si vytvorme REST API. Definujeme a ZdravímOvládač pozdraviť užívateľa:

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

3. Typy protokolov Tomcat

Integrovaný Tomcat ukladá dva typy protokolov:

  • Prístup k denníkom
  • Interné protokoly servera

The prístupové denníky viesť záznamy o všetkých žiadostiach spracovaných aplikáciou. Tieto protokoly možno použiť na sledovať veci, ako je počet prístupov na stránku a aktivita relácie používateľa. Naproti tomu interné protokoly servera nám pomôže vyriešiť akékoľvek problémy v našej spustenej aplikácii.

4. Prístup k denníkom

V predvolenom nastavení nie sú protokoly prístupu povolené.

Ľahko ich však môžeme povoliť pridaním vlastnosti do application.properties:

server.tomcat.accesslog.enabled = true

Podobne môžeme použiť argumenty VM na povolenie protokolov prístupu:

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

Tieto súbory denníka sa vytvoria v dočasnom adresári. Napríklad v systéme Windows bude adresár prístupových protokolov vyzerať asi takto AppData \ Local \ Temp \ tomcat.2142886552084850151.40123 \ logs

4.1. Formát

Keď je teda táto vlastnosť povolená, v našej spustenej aplikácii by sme videli niečo podobné ako toto:

0: 0: 0: 0: 0: 0: 0: 1 - - [13 / May / 2019: 23: 14: 51 +0530] „GET / pozdravy / Harry HTTP / 1.1“ 200 27 0: 0: 0: 0: 0: 0: 0: 1 - - [13 / May / 2019: 23: 17: 23 +0530] „GET / pozdravy / Harry HTTP / 1.1“ 200 27

Toto sú protokoly prístupu a majú formát:

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

Čo môžeme interpretovať ako:

% h - IP klienta, ktorý poslal žiadosť, 0:0:0:0:0:0:0:1 v tomto prípade

% l - totožnosť používateľa

% u - meno používateľa určené pomocou autentifikácie HTTP

% t - čas prijatia žiadosti

% r - riadok žiadosti od klienta, ZÍSKAŤ / pozdravy / Harry HTTP / 1.1 v tomto prípade

%> s - stavový kód odoslaný zo servera klientovi, napríklad 200 tu

% b - veľkosť odpovede klientovi alebo 27 pre tieto žiadosti

Pretože táto žiadosť nemala overeného používateľa, % la% u tlačené čiarky.

V skutočnosti, ak akékoľvek informácie chýbajú, Tomcat vytlačí pre tento slot pomlčku.

4.2. Prispôsobenie protokolov prístupu

Predvolenú konfiguráciu Spring Boot môžeme prepísať pridaním niekoľkých vlastností do application.properties.

Najskôr zmeniť predvolený názov súboru protokolu:

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

Môžeme tiež zmeniť umiestnenie súborov denníka:

server.tomcat.basedir = tomcat server.tomcat.accesslog.directory = protokoly

Na záver môžeme prepísať spôsob, akým sa protokoly zapisujú do súboru denníka:

server.tomcat.accesslog.pattern = bežné

V Spring Boot je tiež niekoľko ďalších konfigurovateľných vlastností.

5. Interné protokoly

Interné protokoly servera Tomcat sú veľmi užitočné pri riešení akýchkoľvek problémov na strane servera.

Ak chcete zobraziť tieto denníky, musíme pridať konfiguráciu prihlásenia nižšie application.properties:

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

A potom uvidíme niečo ako:

2019-05-17 15:41: 07.261 DEBUG 31160 --- [0124-Acceptor-0] o.apache.tomcat.util.threads.LimitLatch: Počítanie západky [http-nio-40124-Acceptor-0] = 1 2019-05-17 15:41: 07.262 DEBUG 31160 --- [0124-Acceptor-0] o.apache.tomcat.util.threads.LimitLatch: Počítanie západky [http-nio-40124-Acceptor-0] = 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 [chránený e-mailom] 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.Parametre: Nastaviť poradie ry kódovanie reťazcov do UTF-8 2019-05-17 15:41: 07.294 DEBUG 31160 --- [io-40124-exec-1] oatutil.http.Rfc6265CookieProcessor: Cookies: Analýza b []: jenkins-timestamper-offset = -19800000 2019-05-17 15:41: 07.296 DEBUG 31160 --- [io-40124-exec-1] oacauthenticator.AuthenticatorBase: žiadosť o kontrolu zabezpečenia ZÍSKAŤ / pozdravy / Harry 2019-05-17 15:41: 07.296 DEBUG 31160 --- [io-40124-exec-1] org.apache.catalina.realm.RealmBase: Nie sú definované žiadne príslušné obmedzenia

6. Záver

V tomto rýchlom článku sme sa dozvedeli rozdiel medzi internými a prístupovými protokolmi Tomcat. Potom sme videli, ako ich povoliť a prispôsobiť.

Uistite sa, že ste si vzorku prezreli na GitHub.


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