Differences

This shows you the differences between two versions of the page.

Link to this comparison view

poo-ca-cd:laboratoare:programare-avansata-java [2026/01/11 23:29]
florian_luis.micu [[Nice to know] Folosirea lui var în teste]
poo-ca-cd:laboratoare:programare-avansata-java [2026/01/11 23:38] (current)
florian_luis.micu [[Nice to know] Folosirea lui var în teste]
Line 1133: Line 1133:
 </​note>​ </​note>​
  
 +=====[Nice to know] Logging în Java =====
 +
 +==== Ce este logging-ul? ====
 +
 +Logging-ul reprezintă mecanismul prin care o aplicație înregistrează informații despre:
 +  * execuția codului
 +  * evenimente importante
 +  * erori sau situații neașteptate
 +
 +Spre deosebire de ''​System.out.println'',​ logging-ul:
 +  * poate fi configurat (nivel, format, destinație)
 +  * poate fi dezactivat fără a modifica codul
 +  * este standard în aplicații profesionale
 +
 +====De ce NU folosim System.out.println?​====
 +
 +Instrucțiunea ''​System.out.println'':​
 +  * nu are niveluri (info, warning, error)
 +  * nu poate fi filtrat pe baza nivelelor
 +  * nu este potrivit pentru producție
 +
 +====Logging standard în Java (java.util.logging)====
 +
 +Java oferă un mecanism de logging în JDK, fără biblioteci externe ''​java.util.logging''​.
 +
 +Exemplu minimal:
 +<code java>
 +import java.util.logging.Logger;​
 +
 +public class Example {
 +    private static final Logger logger =
 +        Logger.getLogger(Example.class.getName());​
 +
 +    void run() {
 +        logger.info("​Application started"​);​
 +    }
 +}
 +</​code>​
 +
 +Niveluri de logging (cele mai uzuale)
 +
 +  * ''​SEVERE''​ / ''​ERROR''​ – erori critice
 +  * ''​WARNING''​ – situații problematice
 +  * ''​INFO''​ – informații generale
 +  * ''​FINE''​ / ''​DEBUG''​ – detalii de execuție
 +
 +<note important>​ Logging-ul NU trebuie să schimbe comportamentul aplicației,​ **doar să-l observe**. </​note>​
 +
 +====Logging folosind Log4j====
 +
 +Pe lângă mecanismul de logging din JDK (java.util.logging),​ în practică este foarte des întâlnită biblioteca Apache Log4j.
 +
 +Log4j este:
 +  * o bibliotecă externă de logging (nu face parte din JDK)
 +  * mai flexibilă și mai configurabilă decât logging-ul standard din Java
 +  * folosită frecvent în aplicații enterprise și framework-uri
 +
 +Un exemplu de inițializare:​
 +<code java>
 +import org.apache.logging.log4j.LogManager;​
 +import org.apache.logging.log4j.Logger;​
 +
 +public class Example {
 +    private static final Logger logger =
 +        LogManager.getLogger(Example.class);​
 +
 +    void run() {
 +        logger.info("​Application started"​);​
 +    }
 +}
 +</​code>​
 +
 +<note warning> Log4j a fost implicat în vulnerabilitatea **Log4Shell (2021)**, una dintre cele mai grave din istoria Java. Acest lucru NU înseamnă că logging-ul este periculos, ci că: **bibliotecile trebuie actualizate** configurațiile trebuie tratate cu atenție </​note>​
 +
 +<note tip>
 +  * ''​java.util.logging''​ → suficient pentru laborator și aplicații simple
 +  * Log4j → standard de facto în aplicații mari
 +  * ''​System.out.println''​ → nu este logging
 +</​note>​
 =====Exerciții===== =====Exerciții=====
  
poo-ca-cd/laboratoare/programare-avansata-java.txt · Last modified: 2026/01/11 23:38 by florian_luis.micu · Currently locked by: florian_luis.micu
CC Attribution-Share Alike 3.0 Unported
www.chimeric.de Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0