Logback kann Protokolle sowohl über die Anwendungskonfigurationsdatei als auch über logback-spring.xml konfigurieren. Normalerweise reicht es aus, die globale Konfigurationsdatei application.yml oder Properties für die Konfiguration zu verwenden. Wenn Ihre Anforderungen an die Protokollausgabe besonders komplex und individuell sind, können Sie die Verwendung der Konfigurationsmethode logback-spring.xml in Betracht ziehen.
Wir können das Protokoll in der Datei application.properties(yml) konfigurieren
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
Geben Sie das gesamte System an Die Standardprotokollstufe ist „Info“, die Protokollstufe ist einheitlich. Personalisierung auf Protokollebene. Aus prioritärer Sicht ist die personalisierte Konfiguration wichtiger als die einheitliche Konfiguration. 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.file.path
gibt das Protokoll in das angegebene Verzeichnis aus. Wenn
logging.file.name
nicht angegeben ist, wird der Standardname des Die Protokolldatei ist spring .log. Nach der Konfiguration von logging.file.name
wird die Konfiguration von logging.file.path
ungültig.
Unabhängig von der Einstellung teilt Spring Boot die Protokolldatei automatisch nach Tag auf, was bedeutet, dass jeden Tag automatisch eine neue Protokolldatei generiert und die vorherige automatisch in ein GZ-komprimiertes Paket gepackt wird. # Protokolldateigröße
Sie können die maximale Dateigröße jedes Protokolls dividiert durch logging.file.max-size=10 MB
festlegen. Protokolle werden weiterhin getrennt nach Überschreiten dieser Größe.
Sie können die beibehaltene Protokollzeit logging.file.max-history=10
in Tagen festlegen
logging.pattern.file
Ausgabe in eine Datei Das Format des Protokolls
logging.pattern.console
ist das Format des Konsolenausgabeprotokolls. Um den Effekt beim Konsolen-Debuggen deutlicher anzuzeigen, werden dem Protokoll Farben hinzugefügt. Rot, Grün usw.
logging.pattern.console
%d{HH:mm:ss.SSS}: Protokollausgabezeit (rot)
%-5level: Protokollebene und mit 5 Zeichen nach links ausrichten (blau hervorheben)
%n: Plattform-Neuzeilenzeichen 2. Verwenden Sie logback-spring.xml, um die Protokollkonfiguration zu implementieren%msg: Protokollnachricht ( cyanblau-grün)
Spring Boot verwendet sein eigenes Logback, um Protokolle zu drucken und in mehreren Umgebungen zu drucken:
<?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>🎜Asynchrone Protokollkonfiguration: 🎜🎜 🎜🎜Der Standardwert für die Größe der asynchronen Protokollwarteschlange beträgt 256, die Kapazität der asynchronen Protokollwarteschlange. 🎜🎜🎜🎜discardingThreshold: Wenn die verbleibende Kapazität der asynchronen Protokollwarteschlange unter diesem Schwellenwert liegt, werden Protokolle der Ebenen TRACE, DEBUG oder INFO verworfen. Wenn Sie das Protokoll nicht verwerfen (also vollständig speichern) möchten, können Sie es auf 0 setzen. Wenn die Warteschlange jedoch voll ist, wird das nicht blockierende asynchrone Protokoll zu einem blockierenden synchronen Protokoll. Daher kann in Systemen mit hohen Parallelitäts- und geringen Latenzanforderungen die DiscardingThreshold-Verwerfungsrichtlinie für unwichtige Protokolle mit einem Wert größer als 0 festgelegt werden. 🎜🎜🎜🎜2.3. Testen Sie es🎜🎜Nachdem die obige Konfiguration abgeschlossen ist, können Sie den folgenden Code verwenden, um zu testen, ob er die in Abschnitt 2.1 genannten Anforderungen erfüllt. 🎜
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 日志..."); } }
Das obige ist der detaillierte Inhalt vonSo konfigurieren Sie das Springboot-Logback-Protokoll-Framework. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!