Přeskočit na obsah
_CORE
AI & Agentic Systems Core Informační Systémy Cloud & Platform Engineering Data Platforma & Integrace Security & Compliance QA, Testing & Observability IoT, Automatizace & Robotika Mobile & Digital Banky & Finance Pojišťovnictví Veřejná správa Obrana & Bezpečnost Zdravotnictví Energetika & Utility Telco & Média Průmysl & Výroba Logistika & E-commerce Retail & Loyalty
Reference Technologie Blog Know-how Nástroje
O nás Spolupráce Kariéra
Pojďme to probrat

Logovani v Java aplikacich — best practices

25. 06. 2013 1 min čtení CORE SYSTEMSdevelopment

Spravne nastavene logovani je rozdil mezi hodinovym debugovanim a petuminutovou diagnostikou. Spatne logovani je bud prilis (tisice radku za sekundu, ktere nikdo necte) nebo prilis malo (CHYBA — nic vic).

SLF4J jako fasada

SLF4J (Simple Logging Facade for Java) odstinuje vas kod od konkretni logovaci implementace. V produkci pouzivate Log4j, na test Logback — kod se nemeni. Vzdy logujte pres SLF4J, nikdy primo pres Log4j API.

Log levely — pravidla

ERROR: neco selhalo a vyzaduje zasah (databaze nedostupna, externi sluzba neodpovida). WARN: neco je podezrele, ale aplikace pokracuje (deprecated API, blizi se limit). INFO: vyznamne business udalosti (uzivatel se prihlasil, objednavka vytvorena). DEBUG: detaily pro vyvojare (SQL dotazy, HTTP hlavicky). Na produkci INFO a vyse, na dev DEBUG.

MDC — Mapped Diagnostic Context

Kazdy log radek by mel obsahovat: cas, thread, level, logger, message — a taky uzivatelske jmeno, session ID, request ID. MDC to resi: na zacatku requestu vlozite userId do MDC, kazdy log radek ho automaticky obsahuje. Neocenitelne pri hledani problemu konkretniho uzivatele.

Rotace a retence

DailyRollingFileAppender: novy soubor kazdy den. Retence 30 dni. Maximalni velikost 100 MB per soubor (RollingFileAppender). Komprese starych logu (gzip). Na produkci NIKDY logujte do stdout — pouzijte FileAppender.

Centralni sber

S 20 servery je cteni logu na kazdem serveru zvlast neprakticke. Rsyslog/syslog-ng pro centralni sber na log server. Hledame reseni pro full-text search v lozich — zatim grep, ale neska’luje.

Pravidla

  1. SLF4J fasada. 2. Spravne log levely. 3. MDC pro kontext. 4. Rotace a retence. 5. Logujte co, ne jak (vysledek operace, ne kazdy radek kodu).
log4jslf4jloggingjava
Sdílet:

CORE SYSTEMS

Stavíme core systémy a AI agenty, které drží provoz. 15 let zkušeností s enterprise IT.