Ich muss Log4j 2.x Protokollierung mit Verschlüsselungsschlüssel (AES) konfigurieren. Ich habe diesen Teil in den log4j2.xml
:Ich habe das Präfix 'sd:' vor einigen der Eigenschaften in log4j2.xml bemerkt - wofür stehen sie?
<Encryption keyId="${sd:encryptionKeyId}" key="${sd:encryptionKey}">
....
</Encryption>
Für Testzwecke ich ein Online-Generierungs-Tool verwendet, um einen AES-Schlüssel zu generieren und ich habe es direkt dort statt ${sd:encryptionKey}
. Es hat funktioniert, dh. Ich habe keine Ausnahmen bekommen.
Dann wollte ich den Schlüssel bis zu den Eigenschaften bewegen, etwa so:
<Property name="sd:encryptionKey">---my key here---</Property>
Es hat nicht funktioniert. Ich habe das Präfix sd:
entfernt und es hat wieder funktioniert.
Meine Frage ist: Was bedeutet dieses Präfix und setzt den Schlüssel direkt in dieser Datei als eine Eigenschaft der richtige Weg, um es zu tun?
Danke. Aber wie funktioniert mein Beispiel nicht mit dem Präfix? Ich vermute dann, dass ich den Wert woanders halten sollte? Können Sie bitte einen Standort vorschlagen, der mit dem Präfix arbeiten soll? – developer10
Haben Sie tatsächlich ein StructuredDataMessage-Objekt protokolliert? –
Die '$ {sd: key}' - Suche kann nur einen Wert für Log-Ereignisse mit einer 'StructuredDataMessage' rendern. Dies ist nicht die Standardnachricht. Wenn Sie logger.log ("Hello {}", "world") verwenden, erhalten Sie eine 'ParametrizedMessage'. Die SD-Suche wird damit nicht funktionieren. Sie müssen explizit ein 'StructuredDataMessage'-Objekt erstellen und dieses protokollieren. –