Ich habe Web-Service-Projekt und möchte den Stammpfad meines Projekts den Logger-Dateipfad im Zusammenhang mit dem Projektpfad zu definieren ... ich kenne diesen Teil des Codes und ich don Ich weiß nicht ob es funktioniert oder nicht ...?Logger-Pfad auf dem Server neben dem Projektpfad
public void contextInitialized(ServletContextEvent event) {
ServletContext context = event.getServletContext();
System.setProperty("rootPath", context.getRealPath("../Logs/"));
}
dann der Logger Teil des Codes
log4j.appender.file.File=${rootPath}WEB-INF/logs/TecnichalLog.log log4j.appender.file.File=${rootPath}WEB-INF/logs/PerformanceLog.log
Anmerkung: Ich bin mit embeded Kater, so konnte ich nicht ${catalina.base}
verwenden ...
danke
Ich verwende Embedded Tomcat und auch das Projekt wird in viele verschiedene Umgebungen verschieben, deshalb würde ich den Pfad mit Kontext deklarieren ... –
Ok, Die Eigenschaft rootPath ist nur während der Laufzeit verfügbar. So könnten Sie die log4j Appender danach programmatisch setzen. Sie können einen Konsolenappender bis zu diesem Zeitpunkt konfigurieren, damit Sie die Startprotokolle nicht verlieren. – jay
Nein! Ich kann die Eigenschaft schreiben, wann immer ich will ** ** Aber das Problem ist, wird das Projekt von anderen Personen eingesetzt werden, die nur ohne Bearbeitung und XML-Datei bereitstellen werden oder und Eigenschaften, das einzige, was ich tun kann, ist, ihm zu sagen, dass die Projekt wird Log.file in der Nähe der Kriegsdatei erzeugen ... –