Wenn Sie Tomcat eingebettet JAR Datei erstellen und installieren Sie es auf einem Server, wie kann auf die Ausnahmen zugreifen? In letzter Zeit hören mein Server und mein Prozess plötzlich auf und ich weiß nicht, was vor sich geht. Ich habe Windows Event Viewer überprüft, konnte aber nichts finden. Gibt es einen Ort, an dem die Exception beispielsweise in eine Datei schreibt?Wie Protokoll Spring boot jar Datei Ausnahmen
Antwort
standardmäßig Frühlings-Boot wird nur auf die Konsole anmelden und wird nicht Schreib Log-Dateien. Wenn Sie Protokolldateien zusätzlich zur Konsolenausgabe schreiben möchten, müssen Sie logging.file oder logging.path Eigenschaft (z. B. in Ihrer application.properties) festlegen.
java -Dlogging.file=target/my_logfile.log -jar spring_boot_app.jar
or
java -Dlogging.path=target/logs -jar spring_boot_app.jar
(Will create spring.log file inside target/logs)
Um das Leben leichter machen können Sie logback.xml oder logback-spring.xml
Es folgt eine Probe von logback.xml verwenden . Fügen Sie es in src/main/resources Verzeichnis ein.
<?xml version="1.0" encoding="UTF-8"?>
<configuration scan="true">
<include resource="org/springframework/boot/logging/logback/base.xml"/>
<!-- The FILE and ASYNC appenders are here as examples for a production configuration -->
<appender name="FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<fileNamePattern>logFile.%d{yyyy-MM-dd}.log</fileNamePattern>
<maxHistory>90</maxHistory>
</rollingPolicy>
<encoder>
<charset>utf-8</charset>
<Pattern>%d %-5level [%thread] %logger{0}: %msg%n</Pattern>
</encoder>
</appender>
<appender name="ASYNC" class="ch.qos.logback.classic.AsyncAppender">
<queueSize>512</queueSize>
<appender-ref ref="FILE"/>
</appender>
<!-- your project package -->
<logger name="com.test" level="INFO"/>
<!-- <logger name="javax.activation" level="WARN"/>
<logger name="javax.mail" level="WARN"/>
<logger name="javax.xml.bind" level="WARN"/>
<logger name="ch.qos.logback" level="WARN"/>
<logger name="com.codahale.metrics" level="WARN"/>
<logger name="com.ryantenney" level="WARN"/>
<logger name="com.sun" level="WARN"/>
<logger name="com.zaxxer" level="WARN"/>
<logger name="io.undertow" level="WARN"/>
<logger name="io.undertow.websockets.jsr" level="ERROR"/>
<logger name="org.apache" level="WARN"/>
<logger name="org.apache.catalina.startup.DigesterFactory" level="OFF"/>
<logger name="org.bson" level="WARN"/>
<logger name="org.hibernate.validator" level="WARN"/>
<logger name="org.hibernate" level="WARN"/>
<logger name="org.hibernate.ejb.HibernatePersistence" level="OFF"/>
<logger name="org.springframework" level="WARN"/>
<logger name="org.springframework.web" level="WARN"/>
<logger name="org.springframework.security" level="WARN"/>
<logger name="org.springframework.cache" level="WARN"/>
<logger name="org.thymeleaf" level="WARN"/>
<logger name="org.xnio" level="WARN"/>
<logger name="springfox" level="WARN"/>
<logger name="sun.rmi" level="WARN"/>
<logger name="liquibase" level="WARN"/>
<logger name="LiquibaseSchemaResolver" level="INFO"/>
<logger name="sun.rmi.transport" level="WARN"/> -->
<contextListener class="ch.qos.logback.classic.jul.LevelChangePropagator">
<resetJUL>true</resetJUL>
</contextListener>
<root level="INFO">
<appender-ref ref="CONSOLE"/>
<appender-ref ref="FILE"/>
</root>
</configuration>
Above Konfiguration werden die Protokolle an den Arbeitsverzeichnis der JAR-Datei mit den Namen wie logFile.yyyy.MM.dd.log
Ich bekomme den ersten Teil und es funktioniert. Für ein besseres Leben möchte ich den zweiten Teil Ihrer Antwort verwenden. Wenn es in Ordnung ist, nur diesen Code mit logback.xml benannte Datei in Ressourcen? – Kenji
Ja, ich habe es mit dem neuesten Springboot '1.5.6' getestet. Es sollte funktionieren. Bitte ersetzen Sie 'com.test' durch das Basispaket Ihres Projekts. – 11thdimension
Was ist der Vorteil der Verwendung von logback.xml vs @ Mike adamenko's Antwort. Ich meine einfach 3 Zeilen in Eigenschaften? – Kenji
Sie sollten die Datei application.properties in Ihrem Klassenpfad hinzufügen und dort die Protokollierungseigenschaften festlegen.
Wenn die einzige Änderung, die Sie Protokollierung vornehmen müssen die Ebenen der verschiedenen Logger eingestellt ist, dann können Sie das in application.properties tun die „logging.level“ Präfix, z.B.
logging.level.org.springframework.web=DEBUG
logging.level.org.hibernate=ERROR
logging.file=C:\myapplication.log
Sie auch den Speicherort einer Datei festlegen können sich anmelden (zusätzlich zu der Konsole) mit „logging.file“.
Siehe here
Wie kann ich die Datei im Stamm der JAR-Datei? – Kenji
jar ist ein einfaches Zip-Archiv. Übrigens können Sie es Ihrem Klassenpfad hinzufügen. Die Antwort wurde aktualisiert. –
Es wäre logging.file = mylogfile.log und es wird auf JAR-Root speichern. Danke, deine Antwort war nützlich. – Kenji
- 1. Spring Boot, wie Eigenschaften Datei außerhalb jar
- 2. Spring Boot log4j Datei extern zu jar?
- 3. Protokollieren Spring Integration Ausnahmen mit Spring Boot
- 4. Wiederkehrende AsyncRequestTimeoutException in Spring Boot Admin-Protokoll
- 5. Spring Boot + Gradle: wie ausführbare jar bauen
- 6. Wie Spring-Boot-ausführbare JAR-Standard-Log-Datei zu deaktivieren?
- 7. Warum Spring Boot JAR in Quellressourcen ändern?
- 8. Frühlings-Boot ausführbare jar "ungültig oder beschädigt JAR-Datei"
- 9. Spring Boot Log in Datei
- 10. So ändern Sie Spring Boot bootRepackage JAR-Datei?
- 11. Runnable-Spring-Boot-JAR für Heroku bereitstellen
- 12. Gebäude Docker Bild von Spring Boot Jar
- 13. Shrink meine riesige 100MB JAR-Datei (Spring Boot Maven Plugin)
- 14. Lese Datei im Frühjahr Boot Fett jar
- 15. Hinzufügen einer externen JAR-Datei in der Spring Boot-Anwendung
- 16. Spring-Boot-Anwendung exportieren als JAR-Datei in Eclipse
- 17. Spring Boot Jsp & ausführbare Jar Würfe/Fehler
- 18. Frühlings-Boot-Steuerziel JAR-Datei Name
- 19. Ressource wird nicht in ausführbare Datei geladen Spring Boot-Jar - Wie ausführbare Jar Ressourcen lädt?
- 20. Spring Boot - Mapping Entities von externen jar
- 21. Schließen Sie data.sql aus Spring boot jar
- 22. Spring Boot Jar Ausführung interne Eigenschaften Dateien
- 23. Wo befindet sich die Spring-JAR-Datei?
- 24. Spring Boot-Anwendung - Unterschied in der Startzeit mit "mvn Spring-Boot: run" und "java -jar"
- 25. Frühjahr Boot jar NoSuchBeanDefinitionException
- 26. Jar-Dateien - Ausnahmen
- 27. Wie können Spring-Boot-Metriken als Protokoll beibehalten werden?
- 28. Spring Boot: Externe Eigenschaften Datei nicht geladen
- 29. Spring Boot Anfragen log
- 30. Wie Spring Boot über ausführbare jar zu verstehen
Blick in die catalina.out Datei in Ihrem TOMCAT_HOME erzeugen/logs-Verzeichnis – Jens
@Jens wo ist TOMCAT_HOME? – Kenji
Es hängt davon ab, wo Sie es installiert haben – Jens