Du verwendest einen veralteten Browser. Es ist möglich, dass diese oder andere Websites nicht korrekt angezeigt werden. Du solltest ein Upgrade durchführen oder ein alternativer Browser verwenden.
im moment logge ich fast jede zeile mit trace, klar schön zum gucken im log file, kann man ja später auf warn oder error erhöhen um, sich das nicht angucken zu müssen
Ich logge (mit java.util.logging) in mehreren Log-Levels:
FINEST, FINER, FINE, CONFIG, INFO, WARNING, SEVERE
z.B.
in WARNING:
- Fehler und Exceptions
in FINE:
- Je nach größe einer Methode: Beginn und Ende
- Methoden-Argumente
- Methodenergebnisse
in FINER:
- Zwischenergebnisse in Berechungen
- Daten I/O (Netzwerk, DB, Filesystem, ...)
in FINEST:
- Inhalte von Arrays, ByteBuffern und so Zeugs
- Größen von Listen, Arrays
Natürlich nicht strickt nach Plan, sondern nur da, wo's auch Sinn macht das im Log zu erfahren. Meist taucht irgendwo ein Bug auf, den ich dann mittels Debuggen und zusätzlichen Log-Outputs finde. Früher hab ich Sysout's verwendet, heute sinds Log-Outputs die dann eben drin bleiben.
Was ich bisher auch nicht berücksichtigt habe, aber seit meinem letzten Projekt nun tue:
Code:
logger.fine("entered value="+value);
hab ich nun abgeändert zu:
Code:
if (logger.isLoggable(Level.FINE)) {
logger.fine("entered value="+value);
}
Grund: Die String-Konkatenation bremst das ganze. Die IF-Abfrage verhindert unnötiges konkatenieren wenn nicht das passende Log-Level eingestellt ist. Kann man sicher noch hübscher lösen. Wollte nur das Prinzip aufzeigen.
Zu viel loggen tut man in meinen Augen nur dann, wenn es unerhebliche Informationen sind die man zum Suchen von Fehler eh nicht braucht.
Ja, sonst gäbe es das Loglevel nicht. Gerade das trace-Level ist erst später dazugekommen, weil man es wirklich sinnvoll einsetzen kann.
Eigentlich sind sie sehr sprechend (z.B. log4j):
trace: Schritt für Schritt nachvollziehbar
debug: genug Informationen um Fehler zu finden
info: Grobe Satusmeldungen (informeller Charakter)
warn: der Entwickler kann nicht entscheiden ob das ein Fehler ist
error: unerwarteter Fehler... lol
fatal: yo... wirklich schlimm halt...
Tipp: bei den Loglevels trace, debug und info immer die Abfrage auf dem Logger machen, ob in diesem Level geloggt werden soll... sonst handelst du dir schnell ein Performanceproblem ein.
ist ein if wirklich so viel effektiver?
als einfach das ganze hinzufügen, hab ka wie dass log system arbeitet, ich stell mir da einen eintrag in einer liste vor
ich werde es aber lieber einbauen... wenn es empfohlen wird
Das Argument der trace-Methode wird jedes mal ausgewertet, egal ob nun geloggt wird oder nicht.
Und wenn dort Methodenaufrufe und String-Konkatenationen stehen, läppert sich das irgendwann.
Wenn du wirklich soviel loggen willst (jeden Methodenaufruf (?)), solltest du das lieber mit
aspektorientierter Programmierung machen. So hälst du deinen Quelltest sauberer.
Das Argument der trace-Methode wird jedes mal ausgewertet, egal ob nun geloggt wird oder nicht.
Und wenn dort Methodenaufrufe und String-Konkatenationen stehen, läppert sich das irgendwann.
Wenn du wirklich soviel loggen willst (jeden Methodenaufruf (?)), solltest du das lieber mit
aspektorientierter Programmierung machen. So hälst du deinen Quelltest sauberer.