Frage

Ich schreibe eine kleine datenbankzentrierte Anwendung in Java Swing, die intern in einem kleinen Unternehmen verwendet wird. Ich habe nicht viel Erfahrung mit der Entwicklung von Anwendungen auf Produktionsebene.

Ich benutze kein Orm, nur ein paar einfache Methoden, die SQL -Abfragen mit Java JDBC ausführen. Bei jeder Methode, die auf die Datenbank zugreift, verwende ich a try-catch Aussage für SQLException und IOException. Soll ich hier eine Protokollierung machen? Falls ich sollte, wie viel sollte ich protokollieren? Bitte geben Sie mir Beispiele für gute Praxis in diesem Fall.

War es hilfreich?

Lösung

Zwei wichtigste Dinge im Produktionssystem sind:

  1. Sprengen Sie die Protokolle nicht mit Informationen, die nicht interessant sind
  2. Ermöglichen Sie das Anheben des Protokollebens für die Fehlerbehebung.

Verwenden Sie eine Art Protokollierungsinfrastruktur. Wenn die Ausnahme während der auftreten kann normal Operation, melden Sie es in Debug -Ebene. Wenn es sich um ein echtes Problem handelt, melden Sie es in Fehlerebene. In beiden Fällen können Sie das System durch Erhöhen des Protokollebens beheben.

Außerdem - wenn Sie eine Ausnahme melden, stellen Sie immer sicher, dass die gesamte Stapelspur + innere Ausnahmen gedruckt werden.

Andere Tipps

IMHO, hier ist das Minimum, das Sie tun sollten. Ich nehme an, Sie verwenden Log4j.

try
{
   // open connection

   // begin transaction

   // my database stuff

   // commit transaction
}
catch (SQLException ex)
{
   log.Error("An error occured while ...: " + ex.Message, ex);
   // do stuff related to SQLException

   // rollback transaction
}
catch (IOExcpetion ex)
{
   log.Error("An error occured while ...: " + ex.Message, ex);
   // do stuff related to IOException

   // rollback transaction
}
catch (Exception ex)
{
    log.Error("An error occured while ...: " + ex.Message, ex);
    // manage this unhandled exception

    // rollback transaction
}
finally
{
   // close connection
}
Lizenziert unter: CC-BY-SA mit Zuschreibung
scroll top