log4j
Apache log4j software | |
---|---|
Tip | Bibliotecă software (nu este listată ) |
Dezvoltator | Apache Software Foundation |
Ultima versiune | 2.14.1 (12 martie 2021) |
Sistem de operare | Multiplatform |
Limba | Java |
Licență | Licență Apache 2.0 ( licență gratuită ) |
Site-ul web | logging.apache.org/log4j/2.x/ |
În informatică, Apache log4j este o bibliotecă Java , scrisă inițial de Ceki Gülcü, acum face parte din proiectul log4j al Apache Software Foundation , unul dintre instrumentele posibile pentru gestionarea jurnalelor într-un mediu Java împreună cu: logback, SLF4J, Java API pentru logare, Apache Common Logging, tinylog și altele.
Utilizat pe scară largă în multe aplicații Java, dezvoltarea sa a încetinit de-a lungul anilor și a devenit dificil de întreținut datorită necesității de a rămâne compatibil cu versiunile foarte vechi de Java. Și-a încheiat ciclul de viață în august 2015 în favoarea noului proiect log4j 2 (consultați https://logging.apache.org/log4j/2.x/manual/index.html ).
Orice aplicație Java trebuie să scrie un jurnal. Pe măsură ce complexitatea aplicației crește, cantitatea de mesaje scrise într-unul sau mai multe jurnale devine, de asemenea, complexă. În caz extrem, pot apărea probleme de performanță din cauza acumulării unui număr excesiv de mesaje. Log4j și celelalte instrumente posibile servesc pentru a organiza mai bine acest lucru.
Nivelurile jurnalului
Următorul tabel definește nivelurile de jurnal și mesajele din log4j în ordinea descrescătoare a severității. Coloana din stânga indică nivelul de jurnal desemnat, iar în dreapta este o scurtă descriere.
Nivel | Descriere |
---|---|
OPRIT | Cel mai înalt nivel posibil este utilizat pentru a dezactiva jurnalele. |
FATAL | Greșeală majoră care a provocat încetarea prematură a executării. Se așteaptă ca acest lucru să fie imediat vizibil pentru operator. |
EROARE | O eroare de execuție sau o condiție neașteptată. Și acest lucru trebuie raportat imediat. |
A AVERTIZA | Folosit pentru orice condiție neașteptată sau anomalie de execuție, care însă nu a dus neapărat la o eroare. |
INFO | Folosit pentru raportarea evenimentelor de execuție (exemplu: pornire / oprire). Trebuie raportat, dar nu menținut mult timp. |
DEBUG | Folosit în faza de depanare a programului. Este raportat în fișierul jurnal. |
URMĂ | Câteva informații detaliate. Se așteaptă să fie scris exclusiv în fișiere jurnal. A fost adăugat în versiunea 1.2.12. |
Exemplu
<? xml version = "1.0" encoding = "UTF-8"?>
<! DOCTYPE log4j: configurare PUBLIC
„http://logging.apache.org/log4j/docs/api/org/apache/log4j/xml/log4j.dtd”>
<log4j: configurare>
<! - un appender este o destinație de ieșire, cum ar fi, de exemplu, consola sau un fișier;
numele alegerilor sunt alese în mod arbitrar ->
<appender name = "stdout" class = "org.apache.log4j.ConsoleAppender" >
<layout class = "org.apache.log4j.PatternLayout" >
<param name = "ConversionPattern"
value = "% d {ABSOLUTE}% 5p% c {1}:% L -% m% n" />
</layout>
</appender>
<! - jurnalele din categoria „org.springframework” vor înregistra numai mesajele cu informații de nivel sau mai mari;
dacă preluați Loggers utilizând numele clasei (de exemplu Logger.getLogger (AClass.class))
iar dacă AClass face parte din pachetul springframework.org, acesta va aparține acestei categorii ->
<logger name = "org.springframework" >
<level value = "info" />
</logger>
<! - totul din primăvară a fost setat la informații, dar pentru clasa PropertyEditorRegistrySupport dorim
jurnal de depanare ->
<logger name = "org.springframework.beans.PropertyEditorRegistrySupport" >
<level value = "debug" />
</logger>
<logger name = "org.acegisecurity" >
<level value = "info" />
</logger>
<root> <! - categoria rădăcină ->
<! - toate mesajele jurnal de nivel de depanare sau mai grave vor fi înregistrate, cu excepția cazului în care este definit altfel ->
<! - toate mesajele de jurnal vor fi înregistrate în aplicația „stdout”, cu excepția cazului în care este definit altfel ->
<level value = "debug" />
<appender-ref ref = "stdout" />
</root>
</ log4j: configurare>
Compararea caracteristicilor diferitelor cadre de logare
Cadru | Niveluri de jurnal acceptate | Anexe standard | Popularitate | Cost / licență |
---|---|---|---|---|
Log4J | EROARE FATALĂ AVERTIZARE INFORMAȚII DEBUGĂ URMĂ | AsyncAppender, JDBCAppender, JMSAppender, LF5Appender, NTEventLogAppender, NullAppender, SMTPAppender, SocketAppender, SocketHubAppender, SyslogAppender, TelnetAppender, WriterAppender | Utilizat pe scară largă în multe proiecte și platforme | Licență Apache, versiunea 2.0 |
API Java Logging | INFORMAȚII DE AVERTIZARE SEVERE CONFIGURAȚI FINALIZAREA FINERULUI FINEST | Mașina virtuală Java (JVM) implicită de Sun are următoarele: ConsoleHandler, FileHandler, SocketHandler, MemoryHandler | Vine cu JRE | |
Apache Commons Logging | EROARE FATALĂ AVERTIZARE INFORMAȚII DEBUGĂ URMĂ | Depinde de cadrul de bază | Utilizat pe scară largă, împreună cu log4j | Licență Apache, versiunea 2.0 |
SLF4J | ERROR WARN INFO DEBUG TRACE | Depinde de cadrul de bază, care este conectabil | Licență MIT | |
tinylog | INFORMAȚII DE AVERTISMENT EROARE DEBUG TRACE | ConsoleWriter, FileWriter, LogcatWriter, JdbcWriter, RollingFileWriter, SharedFileWriter și nul (elimină toate intrările de jurnal) [1] | Licență Apache, versiunea 2.0 | |
Logback | ERROR WARN INFO DEBUG TRACE | Prea multe pentru listare: consultați Appender JavaDoc | Folosit în multe proiecte precum Akka , Apache Camel , Apache Cocoon , Artifactory , Gradle , Lift Framework , Play Framework , Scalatra , SonarQube etc. | LGPL , versiunea 2.1 |
Notă
- ^ Manual de utilizare pentru tinylog , la tinylog.org .
linkuri externe
- Site-ul oficial , la logging.apache.org .
- Depozitul sursă Log4j , la github.com .
- Scurtă introducere la log4j , la logging.apache.org .
- Manual complet , pe qos.ch. Adus la 1 iunie 2009 (arhivat din original la 9 iunie 2007) .
- Log4View , pe log4view.com .
- O demonstrație simplă în timp real , pe gmdx.net . Adus la 1 iunie 2009 (arhivat din original la 25 mai 2009) .
Port
- dlib C ++ Library Homepage - Un port către C ++
- Log4cxx Homepage - Port Apache pentru C ++
- Log4plsql HomePage - Un port pentru Oracle PL / SQL
- Log4perl - Un port pentru Perl
- logging - Un sistem de logging inspirat de log4j pentru Python .
- Log4r - Un sistem de înregistrare pentru Ruby inspirat de log4j.
- log4php un port pentru PHP
- log4sh Arhivat la 23 ianuarie 2009 la Internet Archive . un port către shell-urile principale Unix: sh, bash, dash și ksh