PV168/Logování: Porovnání verzí

Z FI WIKI
Přejít na: navigace, hledání
Řádka 1: Řádka 1:
 
=== [http://java.sun.com/j2se/1.5.0/docs/api/java/util/logging/package-summary.html java.util.logging (JUL)] ===
 
=== [http://java.sun.com/j2se/1.5.0/docs/api/java/util/logging/package-summary.html java.util.logging (JUL)] ===
** ve standardním API až od JDK 1.4
+
* ve standardním API až od JDK 1.4
** třída Logger (instance mají asociované jméno, jehož základ by měl tvořit název balíku, protože je na něm postavena hierarchie Loggerů)
+
* třída Logger (instance mají asociované jméno, jehož základ by měl tvořit název balíku, protože je na něm postavena hierarchie Loggerů)
** Úrovně (instance třídy Level) SEVERE, WARNING, INFO, CONFIG, FINE, FINER, FINEST + ALL a OFF
+
* Úrovně (instance třídy Level) SEVERE, WARNING, INFO, CONFIG, FINE, FINER, FINEST + ALL a OFF
** Možnost implementace vlastního Filteru
+
* Možnost implementace vlastního Filteru
** Připravené handlery pro paměť, OutputStream, soubor (včetně rotování), konzolu, IP socket (i více najednou)
+
* Připravené handlery pro paměť, OutputStream, soubor (včetně rotování), konzolu, IP socket (i více najednou)
** Připravené textové a XML formátování
+
* Připravené textové a XML formátování
** Podpora lokalizovaných zpráv přebíraných z ResourceBundle
+
* Podpora lokalizovaných zpráv přebíraných z ResourceBundle
** LogManager spravující všechny Loggery a jejich konfiguraci
+
* LogManager spravující všechny Loggery a jejich konfiguraci
  
 
=== [http://logging.apache.org/log4j/docs/ Log4j] ===
 
=== [http://logging.apache.org/log4j/docs/ Log4j] ===
** velmi komplexní a robustní logovací knihovna
+
* velmi komplexní a robustní logovací knihovna
** umí vše co JUL a něco navíc
+
* umí vše co JUL a něco navíc
** defacto standad logovaní J2EE aplikací
+
* defacto standad logovaní J2EE aplikací
** nyní součástí http://logging.apache.org/
+
* nyní součástí http://logging.apache.org/
  
 
=== [http://jakarta.apache.org/commons/logging/ Jakarta Commons Logging] ===
 
=== [http://jakarta.apache.org/commons/logging/ Jakarta Commons Logging] ===
** jednoduchá tenká knihovna, která sama o sobě logování neprovádí, ale za cenu mírného omezení funkcionality umožňuje jednotným zůsobem pracovat s mnoha různými logovacími mechanismy (m.j. s oběma výše uvedenými)
+
* jednoduchá tenká knihovna, která sama o sobě logování neprovádí, ale za cenu mírného omezení funkcionality umožňuje jednotným zůsobem pracovat s mnoha různými logovacími mechanismy (m.j. s oběma výše uvedenými)
** Použití: LogFactory -> Log
+
* Použití: LogFactory -> Log
** [http://www.qos.ch/logging/thinkAgain.jsp o nevýhodách Commons Logging]
+
* [http://www.qos.ch/logging/thinkAgain.jsp o nevýhodách Commons Logging]
** [http://marc.theaimsgroup.com/?t=111161823700003&r=2&w=2 true story about JCL]
+
* [http://marc.theaimsgroup.com/?t=111161823700003&r=2&w=2 true story about JCL]
  
 
=== Kterou knihovnu mám použít? ===
 
=== Kterou knihovnu mám použít? ===

Verze z 27. 2. 2006, 02:27

java.util.logging (JUL)

  • ve standardním API až od JDK 1.4
  • třída Logger (instance mají asociované jméno, jehož základ by měl tvořit název balíku, protože je na něm postavena hierarchie Loggerů)
  • Úrovně (instance třídy Level) SEVERE, WARNING, INFO, CONFIG, FINE, FINER, FINEST + ALL a OFF
  • Možnost implementace vlastního Filteru
  • Připravené handlery pro paměť, OutputStream, soubor (včetně rotování), konzolu, IP socket (i více najednou)
  • Připravené textové a XML formátování
  • Podpora lokalizovaných zpráv přebíraných z ResourceBundle
  • LogManager spravující všechny Loggery a jejich konfiguraci

Log4j

  • velmi komplexní a robustní logovací knihovna
  • umí vše co JUL a něco navíc
  • defacto standad logovaní J2EE aplikací
  • nyní součástí http://logging.apache.org/

Jakarta Commons Logging

  • jednoduchá tenká knihovna, která sama o sobě logování neprovádí, ale za cenu mírného omezení funkcionality umožňuje jednotným zůsobem pracovat s mnoha různými logovacími mechanismy (m.j. s oběma výše uvedenými)
  • Použití: LogFactory -> Log
  • o nevýhodách Commons Logging
  • true story about JCL

Kterou knihovnu mám použít?

  • otázka 1.

Do you anticipate a need for any of the clever handlers that Log4j has that JUL does not have, such as the SMTPHandler, NTEventLogHandler, or any of the very convenient FileHandlers?

  • otázka 2.

Do you see yourself wanting to frequently switch the format of your logging output? Will you need an easy, flexible way to do so? In other words, do you need Log4j's PatternLayout?

  • otázka 3.

Do you anticipate a definite need for the ability to change complex logging configurations in your applications, after they are compiled and deployed in a production environment? Does your configuration sound something like, "Severe messages from this class get sent via e-mail to the support guy; severe messages from a subset of classes get logged to a syslog deamon on our server; warning messages from another subset of classes get logged to a file on network drive A; and then all messages from everywhere get logged to a file on network drive B"? And do you see yourself tweaking it every couple of days?

  • otázka 4.

Potřebuje, aby jednotlivé části projektu používali rozdílný logovací engine? Pak JCL.