Ich arbeite an einem Problem in Bezug auf funktionale Protokollierung (Protokoll von Nicht-Entwicklern gesehen). Eine Voraussetzung ist das Hinzufügen einer eindeutigen ID pro Protokolleintrag. Auf diese Weise können die Produktmanager diese ID abfragen und alle zugehörigen Protokolleinträge abrufen. A (Pseudo-) Code-Beispiel ist unten dargestellt:Konstante UUIDs für funktionale Protokollierung (Design)
if (something starts or happens here){
//arguments: container id, service name, message, message uuid
functionalLogService.addLog(container.getId(), this.SERVICE_NAME, "this happened", "124e3314-ffad-4b5d-be76-fc6b0f82aeea");
}
Ich habe dies sehr oft zu tun, und ich weiß nicht wirklich wie zufällige UUIDs in loglines fest einprogrammiert hat. Die UUID ist für jede Protokollanweisung unterschiedlich. Eine Option besteht darin, sie so zu belassen, wie sie ist, was funktioniert, eine andere besteht darin, für jede UUID Konstanten zu erstellen, was übertrieben erscheint.
Meine Frage: Gibt es irgendeine Art von Design oder "nette" Möglichkeit, dies zu tun?
EDIT
Ich habe bereits die Idee der Verwendung:
UUID.nameUUIDFromBytes(message.getBytes()).toString();
Aber wenn ich irgendwann die Meldung geändert werden soll, wird die Datenbank nicht mehr abwärtskompatibel sein. Also diese Option ist out.
Das war meine ursprüngliche Idee, aber containerId ändert sich und die UUID für einen bestimmten Protokolleintrag sollte konstant bleiben, daher kann ich das nicht verwenden. –