j'utilise Tomcat avec amorçage à ressort avec amorçage à ressort 1.5.9, im également en utilisant Log4j2.
récemment, j'éprouve des problèmes lors du chargement, je veux donc mieux comprendre les journaux Tomcat [pas les journaux d'accès], j'ai essayé (dans application.properties):
logging.level.org.Apache.Tomcat: INFO
logging.level.org.Apache.catalina: INFO
mais rien de ce qui précède n'a fonctionné. y a-t-il un autre moyen d'y parvenir?
Je l'ai trouvé !! Vous pouvez maintenant voir les journaux internes de Tomcat intégré dans le fichier journal Log4j de votre application en 3 étapes simples:
1] ajouter à votre pom:
<dependency>
<groupId>org.Apache.logging.log4j</groupId>
<artifactId>log4j-jul</artifactId>
</dependency>
2] ajoutez à votre argument en cours d’exécution un nouveau paramètre JVM, par exemple:
Java -Djava.util.logging.manager=org.Apache.logging.log4j.jul.LogManager -jar target/demo-0.0.1-SNAPSHOT.jar
3] ajouter à votre application.properties:
logging.level.org.Apache=DEBUG
Profite de la vie ! :)
Explication: Le problème vient du fait que les niveaux de journalisation Log4j ne sont pas propagés dans JUL (méthode de journalisation utilisée par Embedded Tomcat). Par conséquent, la connexion ci-dessus établit cette connexion avec les niveaux de journalisation JUL et Log4j.
Référence: Après avoir lu les notes de publication de Spring Boot 1.5.10 (qui ne sont pas requises pour la solution), j’ai vu la nouvelle documentation qui explique comment l’atteindre et comment l'expliquer:
https://github.com/spring-projects/spring-boot/issues/2923#issuecomment-358451260
J'ai beaucoup lutté et je n'ai rien trouvé dans mon aide.Enfin, j'avais construit "WAR" à partir de mon application de démarrage printanière. Déployez-le sur l'instance Tomcat et suivez les étapes ci-dessous Qui redirige tous les journaux internes Tomcat (JULI). se connecte à mon fichier journal d'application.
Supprimez la bibliothèque JULI existante (fichier CATALINA_HOME/bin/Tomcat-juli.jar) et le fichier de configuration Tomcat Java Logging existant (CATALINA_HOME/conf/logging.properties).
Téléchargez la bibliothèque Tomcat JULI Log4j (Tomcat-juli.jar) à partir de la section Extras de Tomcat downloads ( http://Tomcat.Apache.org/download-70.cgi ). Placez le fichier téléchargé dans le répertoire CATALINA_HOME/bin.
Téléchargez la bibliothèque des adaptateurs JULI de Tomcat (Tomcat-juli-adapters.jar) à partir de la section Extras de Tomcat downloads. Placez ce fichier dans le répertoire CATALINA_HOME/lib.
Téléchargez Log4j (version 1.2 ou ultérieure) et placez le fichier de bibliothèque téléchargé dans le répertoire CATALINA_HOME/lib.
Créez le fichier de configuration Log4j à l'emplacement suivant: CATALINA_HOME/lib/log4j.properties. Vérifiez sous la configuration de log4j la configuration par défaut de la journalisation Java.
Redémarrez Tomcat.
Fichier de configuration Log4j correspondant aux paramètres de journalisation Tomcat par défaut:
log4j.rootLogger=INFO, CATALINA
//Define all the appenders log4j.appender.CATALINA=org.Apache.log4j.DailyRollingFileAppender
log4j.appender.CATALINA.File=${catalina.base}/logs/catalina.
log4j.appender.CATALINA.Append=true log4j.appender.CATALINA.Encoding=UTF-8
//Roll-over the log once per day
log4j.appender.CATALINA.DatePattern='.'yyyy-MM-dd'.log'
log4j.appender.CATALINA.layout = org.Apache.log4j.PatternLayout
log4j.appender.CATALINA.layout.ConversionPattern = %d [%t] %-5p %c- %m%n
log4j.appender.LOCALHOST=org.Apache.log4j.DailyRollingFileAppender
log4j.appender.LOCALHOST.File=${catalina.base}/logs/localhost.
log4j.appender.LOCALHOST.Append=true log4j.appender.LOCALHOST.Encoding=UTF-8
log4j.appender.LOCALHOST.DatePattern='.'yyyy-MM-dd'.log'
log4j.appender.LOCALHOST.layout = org.Apache.log4j.PatternLayout
log4j.appender.LOCALHOST.layout.ConversionPattern = %d [%t] %-5p %c- %m%n
log4j.appender.MANAGER=org.Apache.log4j.DailyRollingFileAppender
log4j.appender.MANAGER.File=${catalina.base}/logs/manager.
log4j.appender.MANAGER.Append=true log4j.appender.MANAGER.Encoding=UTF-8
log4j.appender.MANAGER.DatePattern='.'yyyy-MM-dd'.log'
log4j.appender.MANAGER.layout = org.Apache.log4j.PatternLayout
log4j.appender.MANAGER.layout.ConversionPattern = %d [%t] %-5p %c- %m%n
log4j.appender.Host-MANAGER=org.Apache.log4j.DailyRollingFileAppender
log4j.appender.Host-MANAGER.File=${catalina.base}/logs/Host-manager.
log4j.appender.Host-MANAGER.Append=true log4j.appender.Host-MANAGER.Encoding=UTF-8
log4j.appender.Host-MANAGER.DatePattern='.'yyyy-MM-dd'.log'
log4j.appender.Host-MANAGER.layout = org.Apache.log4j.PatternLayout
log4j.appender.Host-MANAGER.layout.ConversionPattern = %d [%t] %-5p %c- %m%n
log4j.appender.CONSOLE=org.Apache.log4j.ConsoleAppender
log4j.appender.CONSOLE.Encoding=UTF-8
log4j.appender.CONSOLE.layout=org.Apache.log4j.PatternLayout
log4j.appender.CONSOLE.layout.ConversionPattern = %d [%t] %-5p %c- %m%n
//Configure which loggers log to which appenders
log4j.logger.org.Apache.catalina.core.ContainerBase.[Catalina].
[localhost]=INFO,
LOCALHOST
log4j.logger.org.Apache.catalina.core.ContainerBase.[Catalina].
[localhost].[/manager]=INFO,MANAGER
log4j.logger.org.Apache.catalina.core.ContainerBase.[Catalina].
[localhost].[/Host-manager]=
INFO, Host-
MANAGER
Vous pouvez aussi vérifier un adaptateur disponible sur GIT @ link
Dans votre application de démarrage printanière, vous pouvez apporter des modifications telles que l'ajout et la suppression de fichiers JAR, le dossier du serveur Tomcat intégré ou même l'ajout de fichiers de configuration personnalisés à l'aide de TomcatEmbeddedServletContainerFactory.class, de la commande printemps.
Les configurations par défaut sont fournies pour Java Util Logging, Log4J, Log4J2 et Logback. Dans chaque cas, les enregistreurs sont préconfigurés pour utiliser la sortie de la console. Une sortie de fichier optionnelle est également disponible.
référez-vous à ce lien: https://stackoverflow.com/questions/31939849/spring-boot-default-log-location/31939886
Le Tomcat intégré au démarrage de printemps renvoie en interne les journaux à la console . La configuration de journal par défaut fera écho aux messages envoyés à la console lors de leur écriture. Ainsi, jusqu'à ce que vous spécifiiez explicitement un fichier comme vous l'avez décrit, il reste dans la console.
À partir du document de journalisation d'amorçage spring .
Vous pouvez personnaliser la journalisation selon vos besoins.
Veuillez vous référer à cette url qui contient les propriétés d’application courantes, ainsi que les propriétés de journalisation d’application et de journalisation au niveau Tomcat. Que vous utilisiez yaml ou un fichier de propriétés, Spring Boot utilise cette configuration pour amorcer l'application. Recherchez les éléments de configuration ci-dessous.
# LOGGING
logging.config= # Location of the logging configuration file. For instance `classpath:logback.xml` for Logback
logging.exception-conversion-Word=%wEx # Conversion Word used when logging exceptions.
logging.file= # Log file name. For instance `myapp.log`
logging.level.*= # Log levels severity mapping. For instance `logging.level.org.springframework=DEBUG`
logging.path= # Location of the log file. For instance `/var/log`
logging.pattern.console= # Appender pattern for output to the console. Only supported with the default logback setup.
logging.pattern.file= # Appender pattern for output to the file. Only supported with the default logback setup.
logging.pattern.level= # Appender pattern for log level (default %5p). Only supported with the default logback setup.
logging.register-shutdown-hook=false # Register a shutdown hook for the logging system when it is initialized.
server.Tomcat.accept-count= # Maximum queue length for incoming connection requests when all possible request processing threads are in use.
server.Tomcat.accesslog.buffered=true # Buffer output such that it is only flushed periodically.
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.file-date-format=.yyyy-MM-dd # Date format to place in log file name.
server.Tomcat.accesslog.pattern=common # Format pattern for access logs.
server.Tomcat.accesslog.prefix=access_log # Log file name prefix.
server.Tomcat.accesslog.rename-on-rotate=false # Defer inclusion of the date stamp in the file name until rotate time.
server.Tomcat.accesslog.request-attributes-enabled=false # Set request attributes for IP address, Hostname, protocol and port used for the request.
server.Tomcat.accesslog.rotate=true # Enable access log rotation.
server.Tomcat.accesslog.suffix=.log # Log file name suffix.
server.Tomcat.additional-tld-skip-patterns= # Comma-separated list of additional patterns that match jars to ignore for TLD scanning.
server.Tomcat.background-processor-delay=30 # Delay in seconds between the invocation of backgroundProcess methods.
server.Tomcat.basedir= # Tomcat base directory. If not specified a temporary directory will be used.
server.Tomcat.internal-proxies=10\\.\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}|\\
192\\.168\\.\\d{1,3}\\.\\d{1,3}|\\
169\\.254\\.\\d{1,3}\\.\\d{1,3}|\\
127\\.\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}|\\
172\\.1[6-9]{1}\\.\\d{1,3}\\.\\d{1,3}|\\
172\\.2[0-9]{1}\\.\\d{1,3}\\.\\d{1,3}|\\
172\\.3[0-1]{1}\\.\\d{1,3}\\.\\d{1,3} # regular expression matching trusted IP addresses.
server.Tomcat.max-connections= # Maximum number of connections that the server will accept and process at any given time.
server.Tomcat.max-http-post-size=0 # Maximum size in bytes of the HTTP post content.
server.Tomcat.max-threads=0 # Maximum amount of worker threads.
server.Tomcat.min-spare-threads=0 # Minimum amount of worker threads.
server.Tomcat.port-header=X-Forwarded-Port # Name of the HTTP header used to override the original port value.
server.Tomcat.protocol-header= # Header that holds the incoming protocol, usually named "X-Forwarded-Proto".
server.Tomcat.protocol-header-https-value=https # Value of the protocol header that indicates that the incoming request uses SSL.
server.Tomcat.redirect-context-root= # Whether requests to the context root should be redirected by appending a / to the path.
server.Tomcat.remote-ip-header= # Name of the http header from which the remote ip is extracted. For instance `X-FORWARDED-FOR`
server.Tomcat.uri-encoding=UTF-8 # Character encoding to use to decode the URI.
Le package pour le Tomcat intégré est org.springframework.boot.context.embedded.Tomcat
Ajoutez donc ceci à votre application.properties file
logging.level.org.springframework.boot.context.embedded.Tomcat.TomcatEmbeddedServletContainer=INFO