webentwicklung-frage-antwort-db.com.de

Spring Boot Tomcat-Zugriffsprotokolle

Ich habe Tomcat-Zugriffsprotokolle gemäß der Spring-Boot-Referenzdokumentation aktiviert. Aber es funktioniert nicht richtig. Wenn ich es aktiviert habe, wurde eine Zugriffsprotokolldatei erstellt und ich kann sehen, dass dort Anforderungen für diesen Tag protokolliert werden. Aber zu Beginn des nächsten Tages sehe ich keine neue Datei. Es begann um 21 Uhr zu protokollieren. Am dritten Tag begann die Protokollierung ab 02:00 Uhr. Ab dem 4. Tag werden keine Zugriffsprotokolle erstellt.

Hier sind die Eigenschaften, die ich verwendet habe.

server.Tomcat.access-log-enabled=true
server.Tomcat.access-log-pattern=%h %l %u %t "%r" %s %b %D
server.Tomcat.basedir=/var/lib/org_name/tracking_server 

unter tracking_server wurden ordner logs und arbeitsordner angelegt.

Bitte lassen Sie mich wissen, wenn ich etwas vermisse. Die regelmäßige Protokollierung funktioniert gemäß der in logback.xml angegebenen Konfiguration einwandfrei

Danke im Vorraus für deine Hilfe.

20
user3626166

Diese Konfiguration funktioniert für mich in der Spring-Boot-Version 1.2.3.RELEASE. Wenn Sie jedoch über die aktuelle Version von Spring Boot verfügen, unterscheiden sich diese Parameter ein wenig, siehe hier :

server.Tomcat.accesslog.directory=logs # Directory in which log files are created. Can be relative to the Tomcat base dir or absolute.
server.Tomcat.accesslog.enabled=false # Enable access log.
server.Tomcat.accesslog.pattern=common # Format pattern for access logs.

Wie Sie feststellen, ist der Unterschied der Bindestrich (-).

Darüber hinaus enthält die Konfiguration des Tomcat-Zugriffsprotokolls die folgenden Parameter gemäß dieses Dokument :

  • fileDateFormat . Der Standardwert ist JJJJ-MM-TT. Dies bedeutet, dass sich die Protokolldatei täglich ändert. Wenn Sie für jjjj-MM-tt.HH ändern, wird das Protokoll stündlich geändert.
  • drehbar . Der Standardwert ist true. Wenn Sie auf false setzen, habe ich verstanden, dass es nur eine Datei geben wird. Der Parameter fileDateFormat wird nicht verwendet.

In meiner Version von Spring Boot (1.2.3.RELEASE) der Klasse org.springframework.boot.autoconfigure.web.ServerProperties gibt es jedoch keine Werte zum Ändern dieser Eigenschaften (Tomcat-Unterklasse). Wenn Sie jedoch org.Apache.catalina.valves.AccessLogValve aktivieren, können Sie die folgenden Eigenschaften ändern:

/**
 * Should we rotate our log file? Default is true (like old behavior)
 */
protected boolean rotatable = true;

/**
 * Date format to place in log file name.
 */
protected String fileDateFormat = ".yyyy-MM-dd";

Ich weiß, vielleicht solltest du mit diesen Parametern spielen. Ich hoffe, dieser Beitrag hilft Ihnen, Ihr Problem zu lösen.

18
jmgoyesc