Logging richtig gemacht! http://www.sxc.hu/photo/338505



Ähnliche Dokumente
Nutzung von Log4J und Commons Logging

Planung für Organisation und Technik

MO 27. Aug. 2007, 17:00 UHR JAVA FRAMEWORKS TIPPS VON PROFI-GÄRTNERN GEGEN WILDWUCHS

Leitfaden für den Zugriff auf die SEB-Webseite. Anmelden, Kennwort ändern, mit- arbeiten und gestalten ;-)

Deutsches Rotes Kreuz. Kopfschmerztagebuch von:

Step by Step Webserver unter Windows Server von Christian Bartl

Ergebnisse. Umfrage Kurz-Statistiken Umfrage 'Feedback und Entertain 2.0'

2015 mylenses Konzept

Flow Session zum Entdecken Deines idealen Lebensstils

IT-SICHERHEIT IM UNTERNEHMEN Mehr Sicherheit für Ihre Entscheidung

Scala kann auch faul sein

AGROPLUS Buchhaltung. Daten-Server und Sicherheitskopie. Version vom b

PHPNuke Quick & Dirty

INHALT. 1 NSA-320 als Logging Version

a.sign Client Lotus Notes Konfiguration

Grundfunktionen und Bedienung

Anbindung des eibport an das Internet

Anleitung für die Verwendung des Helferportals

MODERNES LOGGING DATENSAMMELN OHNE REUE. Bert Radke Marco Grunert T-Systems Multimedia Solutions GmbH

Hardware: QNAP TS 112 mit der Firmware Build 1126T mit 500GB Speicher Twonky Media Version

Hilfe-Blatt: Ausgabenkontrolle

INHALTSVERZEICHNIS Allgemeine Beschreibung... 3 Verwendung der Webseite... 4 Abbildungsverzeichnis... 12

Recherche nach Stellenanzeigen in Zeitungen

OERA OpenEdge Reference Architecture. Mike Fechner PUG Infotag 19. Mai 05 Frankfurt

Die Bundes-Zentrale für politische Bildung stellt sich vor

Windows 7 - Whoami. Whoami liefert Informationen wie z.b. die SID, Anmelde-ID eines Users, sowie Gruppenzuordnungen, Berechtigungen und Attribute.

Applikations-Performance in Citrix Umgebungen

Jeunesse Autopiloten

English. Deutsch. niwis consulting gmbh ( manual NSEPEM Version 1.0

Android Remote Desktop & WEB

Die Wirtschaftskrise aus Sicht der Kinder

MSXFORUM - Exchange Server 2003 > SMTP Konfiguration von Exchange 2003

WERBEWIRKUNG VON ZEITUNGEN UND MAGAZINEN. CCS 2014/2015: Präsentation der Ergebnisse

Im Folgenden wird die Konfiguration der DIME Tools erläutert. Dazu zählen die Dienste TFTP Server, Time Server, Syslog Daemon und BootP Server.

Proofreading Was solltest Du beim Korrekturlesen beachten?

Anleitung OpenCms 8 Inhaltstyp Kommentare

OP-LOG

Meet the Germans. Lerntipp zur Schulung der Fertigkeit des Sprechens. Lerntipp und Redemittel zur Präsentation oder einen Vortrag halten

VIP-Programm. Herzlich Willkommen!

Wie räume ich mein Profil unter Windows 7 auf?

Handbuch Mitgliederverzeichnis

Konfigurationsanleitung Access Control Lists (ACL) Funkwerk. Copyright Stefan Dahler Oktober 2008 Version 1.0.

Erfahrungen mit Hartz IV- Empfängern

Anleitung zur CITRIX-Receiver Installation.

Konfigurationsanleitung Fax over IP (T.38) und CAPI Fax Server (T.30) Graphical User Interface (GUI) Seite - 1 -

Professionelle Seminare im Bereich MS-Office

Folgende Voraussetzungen für die Konfiguration müssen erfüllt sein: - Ein Bootimage ab Version Optional einen DHCP Server.

Integrierte Dienstleistungen regionaler Netzwerke für Lebenslanges Lernen zur Vertiefung des Programms. Lernende Regionen Förderung von Netzwerken

Konfigurationsanleitung Tobit David Fax Server mit Remote CAPI Graphical User Interface (GUI) Seite - 1 -

Konfigurationsanleitung Astimax (SIP) an RT1202 (ISDN) Graphical User Interface (GUI) Seite - 1 -

Albert HAYR Linux, IT and Open Source Expert and Solution Architect. Open Source professionell einsetzen

Leitfaden für die Mitgliederregistrierung auf der neuen Webseite des SFC-Erkelenz

Die Wasser App.

Built in Function. BIF Compatibility. Eine anonymisierte Kundenpräsentation. von Siegfried Fürst SOFTWARE ENGINEERING GmbH

Diese Anleitung beschreibt das Vorgehen mit dem Browser Internet Explorer. Das Herunterladen des Programms funktioniert in anderen Browsern ähnlich.

Bundlemaker project. BundleMaker project state: initialized Parse

1. Der Router ist nicht erreichbar Lösungsansatz: IP Adresse des Routers überprüfen ( entweder irgendwo auf dem Gerät aufgeklebt oder im Handbuch )

mobilepoi 0.91 Demo Version Anleitung Das Software Studio Christian Efinger Erstellt am 21. Oktober 2005

Anleitung zur Nutzung des SharePort Utility

Verwendung des IDS Backup Systems unter Windows 2000

Digitaler*Ausstellungsbegleiter*für*Mobilgeräte ** * * * Alter: Studiengang: Geschlecht: $ $ $ $ Datum: Falls%Ja,%welches? Falls%ja, %welches?

Der große VideoClip- Wettbewerb von Media Markt.

Sage 200 BI Häufige Fehler & Lösungen. Version

Anbinden der Visualisierung GILLES TOUCH (VNC)

8. Bintec Router Redundancy Protocol (BRRP) 8.1 Einleitung

Datensicherung und Wiederherstellung

Windows Server 2012 R2 Essentials & Hyper-V

Diese Anleitung erläutert die Einrichtung des Active Directory Modus im DNS-343.

Was meinen die Leute eigentlich mit: Grexit?

Sicher unterwegs in YouTube

Agentur für Werbung & Internet. Schritt für Schritt: -Konfiguration mit Apple Mail

Applikationsbeispiel für VPN Verbindung mit dem ZR150G und Net-Net Router

Powermanager Server- Client- Installation

Praktische Anleitung zu Konfiguration von PPTP Verbindungen

Professionelle Seminare im Bereich MS-Office

Die neue Aufgabe von der Monitoring-Stelle. Das ist die Monitoring-Stelle:

KEINE SEXUELLEN ÜBERGRIFFE IM OL-SPORT. Merkblatt Kinder und Jugendliche oder AthletInnen

Danke, dass sie sich für die Infoliste der Moodleveranstaltung eingetragen haben.

Lokale Installation von DotNetNuke 4 ohne IIS

Alle alltäglichen Aufgaben können auch über das Frontend durchgeführt werden, das in den anderen Anleitungen erläutert wird.

Benachrichtigungsmöglichkeiten in SMC 2.6

StudyDeal Accounts auf

Anti-Botnet-Beratungszentrum. Windows XP in fünf Schritten absichern

boniup das BackOffice Einstiegsmöglichkeiten: Was be.findet sich im BackOffice? oder

DER SELBST-CHECK FÜR IHR PROJEKT

EchoLink und Windows XP SP2

Info-Veranstaltung zur Erstellung von Zertifikaten

Benutzerhandbuch - Elterliche Kontrolle

Abschlussarbeiten für StudentInnen

Horstbox VoIP. Stefan Dahler. 1. HorstBox Konfiguration. 1.1 Einleitung

Computeria Solothurn

FAQ 04/2015. Auswirkung der ISO auf 3SE53/3SF13 Positionsschalter.

Die Industrie- und Handelskammer arbeitet dafür, dass Menschen überall mit machen können

POP -Konto auf iphone mit ios 6 einrichten

KURZANLEITUNG CLOUD OBJECT STORAGE

Diese Anleitung wurde erstellt von Niclas Lüchau und Daniel Scherer. Erste Anmeldung. Schritt 1: Anmeldung..2. Schritt 2: Passwort setzen 3

ONLINE-AKADEMIE. "Diplomierter NLP Anwender für Schule und Unterricht" Ziele

Web Interface für Anwender

Erklärung zu den Internet-Seiten von

Transkript:

Logging richtig gemacht! http://www.sxc.hu/photo/338505

Logging is a great tool! 2 Logging richtig gemacht!

Qualität eine Systems und Logging Logging: Qualitativer Einflußfaktor Monitoring & Bug-Hunting Performance (Durchsatz + Latenz!) Security Audits aber auch Löcher Skalierbarkeit (z.b. centralized logging) Kapazitäten (Größe der Logs) 3 Logging richtig gemacht!

Aber nicht selten 4 Logging richtig gemacht!

Step #1: Know your tools Log-Frameworks l Log4J l java.util-logging (JUL) l LogBack l tinylog Loggt Default nach /dev/null Konfiguration nur Systemweit?! Zweiter Versuch? Log-Fassaden l Apache Commons Logger (JCL) l SLF4J (JCL-Nachfolger) Standard seit Jahren Moderner 5 Logging richtig gemacht!

Step #1 : Know your tools Welches Framework soll ich verwenden? 6 Logging richtig gemacht!

Step #2 : Configure your tools Folgendes Vorgehen hat sich bewährt: l Implementiere im Projekt bevorzugt gegen JCL oder SLF4J. l Leite ALLE Log-Ausgaben anderer Frameworks um! Bridges für EclipseLink, Hibernate, Spring,.. Bridges für JCL/JUL/SLF4J l Unit-Test: Konfiguriere die Logger von JCL/SLF4J! l Deploye deine Ziel-Logger (log4j- - Konfiguration erst ganz am Schluss 7 Logging richtig gemacht!

Step #2: Configure your tools! 8 Logging richtig gemacht!

Step #2 : Configure your tools Logkonfiguration 1. In jedes src/test/resources Konfiguration des Logging für Unit-Tests (z.b. simple-log.properties) 2. Produktivkonfiguration (log4.xml) Weglassen (z.b. J2EE Container) bzw. Extern oder: src/web/web-inf/classes 3. log4-x.xx.jar / logback-x.xx.jar Bevorzugt gar nicht im Classpath, sondern z.b. in src/main/web/web-inf/lib 9 Logging richtig gemacht!

Step #3 : Be polite! Keine ASCII Art-Battles Keine Log-Level WARs! 10 Logging richtig gemacht!

Step #4 : Die richtige Log-Kategorie l Technische Infos -> Klassennamen. Wie bewährt. l Ablaufinformationen, Protokoll der User-Interaktionen bzw. Schnittstellen-Verkehr Eigene Log-Kategorien wie z.b. "UI" und "SQL" Damit lassen sich diese leichter trennen. (z.b. TRACE der SQL Statements, aber nicht vom Rest der App.) 11 Logging richtig gemacht!

Step #5 : Der richtige Log-Level Level FATAL ERROR WARN INFO DEBUG TRACE Die Welt Semantik und Verwendung Anwendungsfehler, aber nur solche die auch solche sind. Erwartbare Fehler ("File not found", "Not a number") gehören nicht hier rein Fehler und Hinweise auf Situationen, die unerwartet, aber nicht zwangsläufig ein Problem darstellen. Sprich: Hinweise, die Dir einen späteren Folgefehler erklären bzw. dem Administrator Tipps geben Nachrichten, die wichtige Eck-Hinweise darauf geben was passiert (Technisch + Inhaltlich). Dieser Log-Level sollte später in Produktion aktiv bleiben und nur mäßige, aber gehaltvolle Einträge liefern. Beispiele: Status/Version, Ende eines Jobs, zentrale Operationen Hinweise auf grobe Details in der Anwendung, die einen detaillierteren Überblick geben was in der Anwendung passiert. Allerdings sollten auch Debug-Level Nachrichten nicht zu sehr ins Detail gehen. Nachrichten die insbesondere Abläufe, Parameter, Werte etc. im Detail beschreiben. 12 Logging richtig gemacht!

Step #5 : Eine gute Log-Nachricht ist ein unformatierter, kurzer Satz mit wenigen, aber wichtigen Details (IDs) 13 Logging richtig gemacht!

Step #6 : Exceptions to Log or not to Log? Exceptions 1x behandeln & 1x loggen D.h. nur loggen, wenn: a. nicht weitergeworfen b. an der Stelle behandelt wurde c. oder Schnittstellengrenzen überschreitet 14 Logging richtig gemacht!

Step #8 : Log-Performance Teure DEBUG und TRACE-Statements nur bedingt ausführen if (LOG.isTraceEnabled()) { String jobid = job.getcurrentjob().getid(); String username = Session.get().getUser().getDisplayName(); LOG.trace("User "+ username +" triggered recalculation of job "+ jobid); } Platzhalter nutzen (JCL, Logback LOG.debug("Temperature set to {}. Old temperature was {}.", t, oldt); Log- Weitere Aspekte, Asynchrones-Logging 15 Logging richtig gemacht!

Step #9 : Best Practices Disziplin! Disziplin! Disziplin! [ INFO] [ebapp.projectinitlistener] RENT-A-TANK Version Q3_2011 (Built on: 2011-08-18 18:59:08, SVN #727 tampered) [ INFO] [.business.projectsettings] Routing all JDK logging through SLF4J. [ INFO] [.business.projectsettings] Initializing persistence layer... [ INFO] [e.persistence.eclipselink] ServerSession(29876598)--EclipseLink, version: Eclipse Persistence Services - 2.1.2 [ INFO] [e.persistence.eclipselink] ServerSession(29876598)--file:/D:/projects/orchideo-prototype/rent-a-tank.trunk/orc [ INFO] [.business.projectsettings] Initializing configuration data store...: ::: Using volatile, non persistent defaul [TRACE] [.business.serviceprovider] No service implementation registered for 'CategoryService'. Looking for annotation. [DEBUG] [.business.serviceprovider] Auto-wiring service 'CategoryService' to 'de.exxcellent.orchideodemo.business.persi [ INFO] [ialogs.login.loginprocess] Trying to login user 'user' [TRACE] [.business.serviceprovider] No service implementation registered for 'AuthenticationService'. Looking for annot [DEBUG] [.business.serviceprovider] Auto-wiring service 'AuthenticationService' to 'de.exxcellent.orchideodemo.business [ INFO] [UI ] Notifier: Testdaten bereits vorhanden. Es wurden keine weiteren Testdaten angelegt. Saubere Kategorien, Log-Levels, Nachrichten, Performance Code-Reviews der Logs 16 Logging richtig gemacht!

Step #9 : Best Practices Selbst-beschreibende Exceptions für Entwicklung 17 Logging richtig gemacht!

Step #9 : Best Practices l Fehler-IDs in GUI-Meldungen als schnelle Referenz in das Log l Keine sensiblen Inhalte loggen (Passwörter, Datenschutz!) l Nicht als Monitoring-Ersatz missbrauchen (Performance Logs) l Log4J's MappedDiagnosticContext (MDC) and NestedDiagnosticContext (NDC) nutzen! l Eigene Log-Objekte & Appenders nutzen l In Produktion: Keine Filenames/Line-Numbers 18 Logging richtig gemacht!

Step #10 : Mehrwerte Zentrales Logging über Netzwerk (Syslog, UDP) log4net, Chainsaw, Sentinel 19 Logging richtig gemacht!

FAZIT 1. Logging vollständig konfigurieren! 2. Levels & Texte mit Bedacht wählen 3. TRACE nutzen! 4. Be nice & polite (Levels, Ästhetik, Performance) High Performance And Smarter Logging 20 Logging richtig gemacht!