commons-logging.properties
org.apache.commons.logging.Log=org.apache.commons.logging.impl.Jdk14Logger
Použije logovací subsystém z Javy. Rád využívám složeb tohoto API, protože nač přidávat k projektu další knihovnu (např. Log4J)? Lze také specifikovat factory třídu, která se použije, ale toto není nutné:org.apache.commons.logging.Log=org.apache.commons.logging.impl.Jdk14Logger
Zajímavé je, že knihovna commons-logging automaticky použije JDK 1.4 logger, pokud není nakonfigurována jinak a pokud v CLASSPATH nenajde knihovnu log4j (které dává přednost). Bohužel tuto knihovnu často v CLASSPATH mám kvůli závislostem, proto je třeba commons-logging explicitně nastavit.
org.apache.commons.logging.LogFactory=org.apache.commons.logging.impl.LogFactoryImpllogging.properties
handlers = java.util.logging.ConsoleHandler,java.util.logging.FileHandler
Jednoduchá konfigurace – na konzoli se vypisují jen chyby, do souboru APLIKACE.log pak info hlášky. Tento soubor můžete uložit třeba do domovského adresáře uživatele (pomocí masky %u) – více info u dokumentaci třídy FileHandler.
formatters=java.util.logging.SimpleFormatter
.level = ALL
java.util.logging.ConsoleHandler.level = SEVERE
java.util.logging.FileHandler.level = INFO
java.util.logging.ConsoleHandler.formatter = java.util.logging.SimpleFormatter
java.util.logging.FileHandler.formatter = java.util.logging.SimpleFormatter
java.util.logging.FileHandler.pattern = APLIKACE.logNastavení pomocí proměnných
Poslední jmenovaný implementuje jednoduché logování na standardní/chybový výstup (není nutná žádná přídavná knihovna). Předposlední jmenovaný logger je takzvaný nulový – všechny logy se zahazují. Pro Log4j nebo LogKit volby je potřeba mít v CLASSPATH adekvátní knihovny, u JDK 1.4 loggeru je nutné mít potřebnou verzi JRE (1.4+). Příklad spuštění programu, u kterého chcete zcela vypnout logování (za předpokladu, že program loguje pouze přes commons-logging fasádu):java -Dorg.apache.commons.logging.Log=org.apache.commons.logging.impl.NoOpLog -cp . cz.app.MyApp
Další informace o nastavení logování přes commons-logging jsou v oficiální dokumentaci: http://commons.apache.org/logging/guide.html#Configuration
Tento zápisek vznikl převodem z mého starého blogu. Ne všechny texty byly takto převedeny, kompletní archiv již není k dispozici.
Logování přes Commons Logging
April 23, 2010
Vždycky se na pár desítek minut zarazím, když potřebuji vytvořit pro nějakou aplikaci triviální logování pomocí Jakarta Commons Logging knihovny za použití logovacího subsystému z JRE 1.4 nebo vyšší. Bohužel dokumentace k oběma API neobsahuje žádný příklad, takže obvykle hledám na internetu nebo ve starých projektech. Raději to tedy napíšu na svůj blog, abych to příště nehledal…
Úroveň logování lze také nastavit pomocí systémové proměnné Javy: org.apache.commons.logging.Log. Můžete ji nastavit na příkazové řádce parametrem -D, nebo z programu (System.setProperty). Dostupné loggery (volby) v implementaci commons-logging verze 1.1 jsou:
org.apache.commons.logging.impl.AvalonLogger
org.apache.commons.logging.impl.Jdk13LumberjackLogger
org.apache.commons.logging.impl.Jdk14Logger
org.apache.commons.logging.impl.Log4JLogger
org.apache.commons.logging.impl.LogKitLogger
org.apache.commons.logging.impl.NoOpLog
org.apache.commons.logging.impl.SimpleLog