So konfigurieren Sie das Springboot-Logback-Protokoll-Framework
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.
1. Die Anwendungskonfigurationsdatei implementiert die Protokollkonfiguration
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 vonlogging.file.name
wird die Konfiguration vonlogging.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 festlegenlogging.pattern.file
Ausgabe in eine Datei Das Format des Protokollslogging.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.
Platzhalter für das Protokollformat
Mit diesem Bild werfen wir einen Blick auf die Beziehung zwischen Platzhaltern und der Formatkonfiguration logging.pattern.console
%d{HH:mm:ss.SSS}: Protokollausgabezeit (rot)
- %thread: Der Prozessname des Ausgabeprotokolls, der in Webanwendungen und der asynchronen Aufgabenverarbeitung sehr nützlich ist (grün)
- %logger: der Name der Protokollausgabeklasse (boldMagenta, fett, magenta)
%n: Plattform-Neuzeilenzeichen 2. Verwenden Sie logback-spring.xml, um die Protokollkonfiguration zu implementieren%msg: Protokollnachricht ( cyanblau-grün)
- 2.1. Anforderungen Verwenden Sie im Allgemeinen die globale Konfigurationsdatei application.yml oder Eigenschaften Für die Konfiguration ist ausreichend. Wenn Ihre Anforderungen an die Protokollausgabe besonders komplex sind, können Sie die Verwendung der Konfigurationsmethode logback-spring.xml in Betracht ziehen.
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>
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!

Heiße KI -Werkzeuge

Undresser.AI Undress
KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover
Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool
Ausziehbilder kostenlos

Clothoff.io
KI-Kleiderentferner

AI Hentai Generator
Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

Heiße Werkzeuge

Notepad++7.3.1
Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version
Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1
Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6
Visuelle Webentwicklungstools

SublimeText3 Mac-Version
Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Heiße Themen



Einführung in Jasypt Jasypt ist eine Java-Bibliothek, die es einem Entwickler ermöglicht, seinem Projekt mit minimalem Aufwand grundlegende Verschlüsselungsfunktionen hinzuzufügen und kein tiefes Verständnis der Funktionsweise der Verschlüsselung erfordert. standardbasierte Verschlüsselungstechnologie. Passwörter, Text, Zahlen, Binärdateien verschlüsseln ... Geeignet für die Integration in Spring-basierte Anwendungen, offene API, zur Verwendung mit jedem JCE-Anbieter ... Fügen Sie die folgende Abhängigkeit hinzu: com.github.ulisesbocchiojasypt-spring-boot-starter2 Die Vorteile von Jasypt schützen unsere Systemsicherheit. Selbst wenn der Code durchgesickert ist, kann die Datenquelle garantiert werden.

Nutzungsszenario 1. Die Bestellung wurde erfolgreich aufgegeben, die Zahlung erfolgte jedoch nicht innerhalb von 30 Minuten. Die Zahlung ist abgelaufen und die Bestellung wurde automatisch storniert. 2. Die Bestellung wurde unterzeichnet und es wurde 7 Tage lang keine Bewertung durchgeführt. Wenn die Bestellung abläuft und nicht ausgewertet wird, wird die Bestellung standardmäßig positiv bewertet. Wenn der Händler die Bestellung innerhalb von 5 Minuten nicht erhält, wird die Bestellung abgebrochen Es wird eine SMS-Erinnerung gesendet ... Für Szenarien mit langen Verzögerungen und geringer Echtzeitleistung können wir die Aufgabenplanung verwenden, um eine regelmäßige Abfrageverarbeitung durchzuführen. Zum Beispiel: xxl-job Heute werden wir auswählen

1. Redis implementiert das Prinzip der verteilten Sperren und warum verteilte Sperren erforderlich sind. Bevor über verteilte Sperren gesprochen wird, muss erläutert werden, warum verteilte Sperren erforderlich sind. Das Gegenteil von verteilten Sperren sind eigenständige Sperren. Wenn wir Multithread-Programme schreiben, vermeiden wir Datenprobleme, die durch den gleichzeitigen Betrieb einer gemeinsam genutzten Variablen verursacht werden. Normalerweise verwenden wir eine Sperre, um die Richtigkeit der gemeinsam genutzten Variablen sicherzustellen Die gemeinsam genutzten Variablen liegen im gleichen Prozess. Wenn es mehrere Prozesse gibt, die gleichzeitig eine gemeinsam genutzte Ressource betreiben müssen, wie können sie sich dann gegenseitig ausschließen? Heutige Geschäftsanwendungen sind in der Regel Microservice-Architekturen, was auch bedeutet, dass eine Anwendung mehrere Prozesse bereitstellen muss. Wenn mehrere Prozesse dieselbe Datensatzzeile in MySQL ändern müssen, ist eine Verteilung erforderlich, um fehlerhafte Daten zu vermeiden wird zu diesem Zeitpunkt eingeführt. Der Stil ist gesperrt. Punkte erreichen wollen

Springboot liest die Datei, kann aber nach dem Packen in ein JAR-Paket nicht auf die neueste Entwicklung zugreifen. Es gibt eine Situation, in der Springboot die Datei nach dem Packen in ein JAR-Paket nicht lesen kann ist ungültig und kann nur über den Stream gelesen werden. Die Datei befindet sich unter resources publicvoidtest(){Listnames=newArrayList();InputStreamReaderread=null;try{ClassPathResourceresource=newClassPathResource("name.txt");Input

SpringBoot und SpringMVC sind beide häufig verwendete Frameworks in der Java-Entwicklung, es gibt jedoch einige offensichtliche Unterschiede zwischen ihnen. In diesem Artikel werden die Funktionen und Verwendungsmöglichkeiten dieser beiden Frameworks untersucht und ihre Unterschiede verglichen. Lassen Sie uns zunächst etwas über SpringBoot lernen. SpringBoot wurde vom Pivotal-Team entwickelt, um die Erstellung und Bereitstellung von Anwendungen auf Basis des Spring-Frameworks zu vereinfachen. Es bietet eine schnelle und einfache Möglichkeit, eigenständige, ausführbare Dateien zu erstellen

Wenn Springboot + Mybatis-plus keine SQL-Anweisungen zum Hinzufügen mehrerer Tabellen verwendet, werden die Probleme, auf die ich gestoßen bin, durch die Simulation des Denkens in der Testumgebung zerlegt: Erstellen Sie ein BrandDTO-Objekt mit Parametern, um die Übergabe von Parametern an den Hintergrund zu simulieren dass es äußerst schwierig ist, Multi-Table-Operationen in Mybatis-plus durchzuführen. Wenn Sie keine Tools wie Mybatis-plus-join verwenden, können Sie nur die entsprechende Mapper.xml-Datei konfigurieren und die stinkende und lange ResultMap konfigurieren Schreiben Sie die entsprechende SQL-Anweisung. Obwohl diese Methode umständlich erscheint, ist sie äußerst flexibel und ermöglicht es uns

1. Passen Sie den RedisTemplate1.1-Standard-Serialisierungsmechanismus an. Die API-basierte Redis-Cache-Implementierung verwendet die RedisTemplate-Vorlage für Daten-Caching-Vorgänge. Öffnen Sie hier die RedisTemplate-Klasse und zeigen Sie die Quellcodeinformationen der Klasse publicclassRedisTemplateextendsRedisAccessorimplementsRedisOperations an. Schlüssel deklarieren, verschiedene Serialisierungsmethoden des Werts, der Anfangswert ist leer @NullableprivateRedisSe

In Projekten werden häufig einige Konfigurationsinformationen benötigt. Diese Informationen können in der Testumgebung und in der Produktionsumgebung unterschiedliche Konfigurationen haben und müssen möglicherweise später basierend auf den tatsächlichen Geschäftsbedingungen geändert werden. Wir können diese Konfigurationen nicht fest im Code codieren. Am besten schreiben Sie sie in die Konfigurationsdatei. Sie können diese Informationen beispielsweise in die Datei application.yml schreiben. Wie erhält oder verwendet man diese Adresse im Code? Es gibt 2 Methoden. Methode 1: Wir können den Wert, der dem Schlüssel in der Konfigurationsdatei (application.yml) entspricht, über den mit @Value versehenen Wert erhalten. Diese Methode eignet sich für Situationen, in denen es relativ wenige Mikrodienste gibt: Tatsächlich Projekte, wenn das Geschäft kompliziert ist, Logik
