2016-11-03 3 views
1

In Log4j2-Appendern ist es sinnvoll, den contextPath als Dateinamen zu verwenden, wie in: filename="/logs/${web:contextPath}.log. Dies bedeutet, dass eine Protokollkonfiguration über mehrere Webapps hinweg wiederverwendet werden kann. Wenn ein contextPath /foo/bar ist, wird die Datei /logs/foo/bar.log erstellt. Gibt es trotzdem die / im contextPath durch _ zu ersetzen, so ist der Dateiname /logs/foo_bar.log?Log4j2 Property Replacement

Für mich ist das nützlicher als Replizieren der Kontextpfadstruktur direkt in den Protokollen. Ich habe auf der StringSubstitution Dokumente gelesen und kann nicht sehen, um es zu tun, aber wenn jemand eine Lösung hat, wäre es wirklich hilfreich!

Antwort

0

Ich glaube nicht, dass es einen Weg gibt, dies out-of-the-box zu tun. Aber Sie können leicht eine benutzerdefinierte Suche erstellen, die dies tut.

Beginnen Sie mit Unterklasse WebLookup und ersetzen Sie '/' Zeichen durch Unterstriche in der zurückgegebenen Zeichenfolge.

Beispiel für das Erstellen einer benutzerdefinierten Log4j2-Suche: siehe manual page oder this question.

+0

danke - ich werde das tun. – Mark

+0

Nr. Lass es mich wissen, wenn es ein Problem gibt. –

Verwandte Themen