Je veux enregistrer le message dans un fichier et non sur la console. J'utilise Spring Boot et ma configuration est la suivante:
application.properties:
logging.level: DEBUG
logging.level: ERROR
logging.file: ${HOME}/application.log
Je reçois des messages de journal d’INFO uniquement dans mon fichier application.log
, mais je veux aussi des messages d’ERREUR et DEBUG.
Mon exigence est que je veux un message ERROR dans le fichier error.log
et un message DEBUG dans debug.log
et des messages INFO dans info.log
.
Toute aide est très appreciée.
Spring Boot vous permet de configurer certains aspects de base de votre système de journalisation à l'aide de application.properties, mais il existe des limits :
Pour configurer les paramètres plus détaillés d'un système de journalisation, vous devez utiliser le format de configuration natif pris en charge par le système de journalisation en question.
En d'autres termes, si vous souhaitez faire quelque chose qui n'est pas spécifiquement pris en charge par les propriétés, vous ne pourrez pas ajouter ou modifier un fichier logback.xml
(en supposant que vous utilisez la consignation).
Alors, passons en revue vos exigences:
Selon les docs :
Par défaut, Spring Boot se connectera uniquement à la console et n'écrira pas les fichiers journaux. Si vous souhaitez écrire les fichiers journaux en plus (soulignement ajouté) dans la sortie de la console, vous devez définir une propriété logging.file ou logging.path (par exemple, dans votre application.properties).
En d'autres termes, l'enregistrement non sur la console ne peut pas être effectué à l'aide des propriétés.
Par défaut, les journaux Spring Boot au niveau INFO, qui doivent inclure ERROR, êtes-vous sûr que vous êtes non et que vous obtenez les journaux ERROR avec le paramètre par défaut?
En outre, vous spécifiez uniquement le niveau le plus élevé que vous souhaitez consigner, pas chaque niveau, et vous devez spécifier le consignateur sur lequel vous souhaitez définir le niveau.
Cela ne fonctionnera pas:
logging.level: DEBUG
logging.level: ERROR
Voici un exemple de configuration de niveaux de journal personnalisés en fonction de docs :
logging.level.org.springframework.web: DEBUG
logging.level.org.hibernate: ERREUR
Vous pouvez également utiliser la propriété logging.level.*
pour définir le niveau du consignateur racine comme suit:
logging.level.ROOT: DEBUG
Notez que la configuration de la journalisation DEBUG sur l’enregistreur ROOT génère une grande quantité de journaux. Je viens de le tester ici et j'ai environ 13 Mo de journaux au démarrage, sans rien faire.
Encore une fois, cela ne peut pas être fait en utilisant uniquement les propriétés. Spring Boot vous permet de configurer exactement une propriété logging.file
qui contiendra tous les journaux.
Pour une liste complète des propriétés de journalisation disponibles et des exemples de valeurs, voir ici .
Si vous souhaitez désactiver la journalisation de la console et écrire la sortie uniquement dans un fichier, vous avez besoin d'un fichier personnalisé logback-spring.xml qui importe le fichier file-appender.xml mais pas le fichier console-appender.xml.
Il est décrit dans Documents de démarrage Spring :
Au lieu d'utiliser ces propriétés, essayez d'ajouter un fichier logback.xml dans le même dossier que votre application.properties. Configurez logback.xml comme vous en avez besoin pour vous connecter.
Dans votre cas, cela ne fonctionnera pas car vous essayez de définir le niveau d'enregistrement ROOT à plusieurs niveaux.
logging.level: DEBUG
logging.level: ERROR
Ce sont différents niveaux de journalisation et son ordre de minimum << maximum.
OFF << FATAL << ERREUR << AVERTISSEMENT << INFO << DEBUG << TRACE << ALL
# To set logs level as per your need.
logging.level.org.springframework = debug
logging.level.tech.hardik = trace
# To store logs to external file
# Here use strictly forward "/" slash for both Windows, Linux or any other os, otherwise, your logs it won't work.
logging.file=D:/spring_app_log_file.log
# To customize logging pattern.
logging.pattern.file= "%d{yyyy-MM-dd HH:mm:ss} - %msg%n"
Merci de passer par cette documentation pour personnaliser vos journaux de manière plus vive.
https://docs.spring.io/spring-boot/docs/current/reference/html/boot-features-logging.html