Maison >Java >javaDidacticiel >Comment configurer le cadre de journalisation de connexion Springboot
Logback peut configurer les journaux à la fois via le fichier de configuration de l'application et via logback-spring.xml. Normalement, il suffit d'utiliser le fichier de configuration global application.yml ou les propriétés pour la configuration. Si vos exigences de sortie de journal sont particulièrement complexes et personnalisées, vous pouvez envisager d'utiliser la méthode de configuration logback-spring.xml.
Nous pouvons configurer le journal dans le fichier application.properties(yml)
logging: level: root: info com.zimug.boot.launch.controller: debug file: path: D:\logs name: D:\logs\boot-launch.log max-size: 10MB max-history: 10 pattern: console: '%red(%d{yyyy-MM-dd HH:mm:ss}) %green([%thread]) %highlight(%-5level) %boldMagenta(%logger{10}) - %cyan(%msg%n)' file: '%d{yyyy-MM-dd HH:mm:ss.SSS} %-5level [%thread] %logger : %msg%n'
logging.level.root=info
Spécifiez l'ensemble du système. le niveau de journalisation par défaut est info, le niveau de journalisation est unifiélogging.level.root=info
指定整个系统的默认日志级别是info,日志级别统一化
logging.level.com.zimug.boot.launch.controller=debug
,指定某个特定的package的日志级别是debug,日志级别个性化。优先级角度,个性配置大于统一配置。
logging.file.path
将日志输出到指定目录,如果不指定
logging.file.name
,日志文件的默认名称是spring.log。配置了logging.file.name
之后,logging.file.path
配置失效。
无论何种设置,Spring Boot都会自动按天分割日志文件,也就是说每天都会自动生成一个新的log文件,而之前的会自动打成GZ压缩包。# 日志文件大小
可以设置logging.file.max-size=10MB
分割的每个日志的文件最大容量,超过这个size之后日志继续分隔。
可以设置保留的日志时间logging.file.max-history=10
,以天为单位
logging.pattern.file
输出到文件中的日志的格式
logging.pattern.console
控制台输出日志的格式,为了在控制台调试时候显示效果更清晰,为日志增加了颜色。red、green等等
配合这张图,看一下占位符和logging.pattern.console
logging.level.com.zimug.boot.launch.controller=debug
, spécifie que le niveau de journalisation d'un package spécifique est debug, Personnalisation du niveau de journalisation. Du point de vue des priorités, une configuration personnalisée est supérieure à une configuration unifiée.
logging.file.path
génère le journal dans le répertoire spécifié Si
logging.file.name
n'est pas spécifié, le nom par défaut du. Le fichier journal est Spring .log. Après avoir configuré logging.file.name
, la configuration logging.file.path
devient invalide.
Quel que soit le paramètre, Spring Boot divisera automatiquement le fichier journal par jour, ce qui signifie qu'un nouveau fichier journal sera automatiquement généré chaque jour et le précédent sera automatiquement emballé dans un package compressé GZ. # Taille du fichier journal
Vous pouvez définir la taille maximale du fichier de chaque journal divisée par logging.file.max-size=10 Mo
. après avoir dépassé cette taille.
Vous pouvez définir la durée de conservation du journal logging.file.max-history=10
, en jours
logging.pattern.file
sortie dans un fichier Le format du journal de connexion
logging.pattern.console
est le format du journal de sortie de la console Afin d'afficher l'effet plus clairement lors du débogage de la console, des couleurs sont ajoutées au journal. rouge, vert, etc.Espace réservé au format de journal
Avec cette image, jetons un coup d'œil à la relation entre les espaces réservés et la configuration du format logging.pattern.console
%-5level : niveau de journalisation, et utilisez 5 caractères pour aligner à gauche (surligner en bleu)
%msg : message de journalisation ( cyan bleu-vert) %n : Caractère de nouvelle ligne de la plate-forme%logger : le nom de la classe de sortie du journal (boldMagenta gras magenta)
<?xml version="1.0" encoding="UTF-8"?> <configuration> <!--引入默认的一些设置--> <include resource="org/springframework/boot/logging/logback/defaults.xml"/> <!--web信息--> <logger name="org.springframework.web" level="info"/> <!--写入日志到控制台的appender,用默认的,但是要去掉charset,否则windows下tomcat下乱码--> <appender name="CONSOLE" class="ch.qos.logback.core.ConsoleAppender"> <encoder> <pattern>${CONSOLE_LOG_PATTERN}</pattern> </encoder> </appender> <!--定义日志文件的存储地址 勿在 LogBack 的配置中使用相对路径--> <property name="LOG_PATH" value="D:/logs/boot-launch"/> <!--写入日志到文件的appender--> <appender name="FILE" class="ch.qos.logback.core.rolling.RollingFileAppender"> <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy"> <!--日志文件输出的文件名,每天一个文件--> <FileNamePattern>${LOG_PATH}.%d{yyyy-MM-dd}.log</FileNamePattern> <!--日志文件保留天数--> <maxHistory>30</maxHistory> </rollingPolicy> <encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder"> <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n</pattern> </encoder> <!--日志文件最大的大小--> <triggeringPolicy class="ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy"> <MaxFileSize>10MB</MaxFileSize> </triggeringPolicy> </appender> <!--异步写日志到文件--> <appender name="asyncFileAppender" class="ch.qos.logback.classic.AsyncAppender"> <discardingThreshold>0</discardingThreshold> <queueSize>500</queueSize> <appender-ref ref="FILE"/> </appender> <!--生产环境:打印控制台和输出到文件--> <springProfile name="prod"> <root level="info"> <appender-ref ref="CONSOLE"/> <appender-ref ref="asyncFileAppender"/> </root> </springProfile> <!--开发环境:打印控制台--> <springProfile name="dev"> <!-- 打印sql --> <logger name="com.zimug.boot.launch" level="DEBUG"/> <root level="DEBUG"> <appender-ref ref="CONSOLE"/> </root> </springProfile> <!--测试环境:打印控制台--> <springProfile name="test"> <root level="info"> <appender-ref ref="CONSOLE"/> </root> </springProfile> </configuration>🎜Configuration du journal asynchrone : 🎜🎜 🎜🎜La valeur par défaut de la taille de la file d'attente des journaux asynchrones est 256, la capacité de la file d'attente des journaux asynchrones. 🎜🎜🎜🎜discardingThreshold : Lorsque la capacité restante de la file d'attente des journaux asynchrones est inférieure à ce seuil, les journaux de niveau TRACE, DEBUG ou INFO seront supprimés. Si vous ne souhaitez pas supprimer le journal (c'est-à-dire le sauvegarder dans son intégralité), vous pouvez le définir sur 0. Mais lorsque la file d'attente est pleine, le journal asynchrone non bloquant deviendra un journal synchrone bloquant. Par conséquent, dans les systèmes ayant des exigences élevées en matière de concurrence simultanée et de faible latence, la politique de suppression DissidingThreshold peut être définie pour les journaux sans importance, avec une valeur supérieure à 0. 🎜🎜🎜🎜2.3. Testez-le🎜🎜Une fois la configuration ci-dessus terminée, vous pouvez utiliser le code suivant pour tester s'il répond aux exigences avancées dans la section 2.1. 🎜
import org.slf4j.Logger; import org.slf4j.LoggerFactory; @RestController public class LogTestController { private static final Logger logger = LoggerFactory.getLogger(LogTestController.class); @GetMapping("/testlog") public void test(){ logger.trace("Trace 日志..."); logger.debug("Debug 日志..."); logger.info("Info 日志..."); logger.warn("Warn 日志..."); logger.error("Error 日志..."); } }
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!