Přeskočit na obsah
_CORE
AI & agentní systémy Podnikové informační systémy Cloud & Platform Engineering Datová platforma & integrace Bezpečnost & compliance QA, testování & observabilita IoT, automatizace & robotika Mobilní & digitální produkty Bankovnictví & finance Pojišťovnictví Veřejná správa Obrana & bezpečnost Zdravotnictví Energetika & utility Telco & média Průmysl & výroba Logistika & e-commerce Retail & věrnostní programy
Reference Technologie Blog Know-how Nástroje
O nás Spolupráce Kariéra
CS EN DE
Pojďme to probrat

Logování v Java aplikacích — best practices

25. 06. 2013 Aktualizováno: 24. 03. 2026 1 min čtení CORE SYSTEMSdevelopment
Tento článek byl publikován v roce 2013. Některé informace mohou být zastaralé.
Logování v Java aplikacích — best practices

Spravne nastavené logování je rozdíl mezi hodinovým debugovanim a petuminutovou diagnostikou. Spatne logování je buď příliš (tisíce radku za sekundu, které nikdo nečte) nebo příliš málo (CHYBA — nic víc).

SLF4J jako fasáda

SLF4J (Simple Logging Facade for Java) odstiňuje vas kod od konkrétní logovací implementace. V produkci používáte Log4j, na test Logback — kod se nemění. Vždy logujte pres SLF4J, nikdy primo pres Log4j API.

Log levely — pravidla

ERROR: něco selhalo a vyzaduje zásah (databaze nedostupná, externi služba neodpovídá). WARN: něco je podezrele, ale aplikace pokračuje (deprecated API, blíží se limit). INFO: vyznamne business udalosti (uživatel se přihlásil, objednávka vytvořena). DEBUG: detaily pro vyvojare (SQL dotazy, HTTP hlavičky). Na produkci INFO a výše, na dev DEBUG.

MDC — Mapped Diagnostic Context

Kazdy log řádek by měl obsahovat: čas, thread, level, logger, message — a taky uživatelské jmeno, session ID, request ID. MDC to řeší: na začátku requestu vložíte userId do MDC, kazdy log řádek ho automaticky obsahuje. Neocenitelne pri hledání problemu konkrétního uzivatele.

Rotace a retence

DailyRollingFileAppender: nový soubor kazdy den. Retence 30 dní. Maximální velikost 100 MB per soubor (RollingFileAppender). Komprese starých logu (gzip). Na produkci NIKDY logujte do stdout — použijte FileAppender.

Centralni sber

S 20 servery je čtení logu na kazdem serveru zvlášť nepraktické. Rsyslog/syslog-ng pro centralni sber na log server. Hledáme řešení pro full-text search v lozích — zatím grep, ale neska’luje.

Pravidla

  1. SLF4J fasáda. 2. Spravne log levely. 3. MDC pro kontext. 4. Rotace a retence. 5. Logujte co, ne jak (výsledek operace, ne kazdy řádek kodu).
log4jslf4jloggingjava
Sdílet:

CORE SYSTEMS

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

Potřebujete pomoc s implementací?

Naši experti vám pomohou s návrhem, implementací i provozem. Od architektury po produkci.

Kontaktujte nás
Potřebujete pomoc s implementací? Domluvit schůzku