Heim > Java > javaLernprogramm > Hauptteil

So konfigurieren Sie das Springboot-Logback-Protokoll-Framework

WBOY
Freigeben: 2023-05-11 10:46:19
nach vorne
1129 Leute haben es durchsucht

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'
Nach dem Login kopieren
  • logging.level.root=infoGeben 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

springboot logback日志框架怎么配置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.

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)
  • %-5level: Protokollebene und mit 5 Zeichen nach links ausrichten (blau hervorheben)
  • %logger: der Name der Protokollausgabeklasse (boldMagenta, fett, magenta)

%msg: Protokollnachricht ( cyanblau-grün)

%n: Plattform-Neuzeilenzeichen

2. Verwenden Sie logback-spring.xml, um die Protokollkonfiguration zu implementieren
  • 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:

Die Produktionsumgebung gibt auf der Konsole aus und Dateien, eine Datei pro Tag, werden 30 Tage lang aufbewahrt Ausgaben an die Konsole und Ausgabe von SQL (mybatis) Die Produktionsumgebung druckt diese Informationen nur an die Konsole. Nicht in eine Datei ausgeben

🎜🎜🎜Um Mybatis SQL zu drucken, müssen Sie nur die Protokollebene des von Mybatis verwendeten Pakets anpassen, um DEBUG zu verwenden, um die SQL zu drucken. 🎜🎜🎜2.2. Anforderungsrealisierung🎜🎜Da Logback das Standardprotokollierungsframework von Spring Boot ist, müssen Sie einfach logback-spring.xml hochladen und unter Ressourcen platzieren🎜
<?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>
Nach dem Login kopieren
🎜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 日志...");
    }
}
Nach dem Login kopieren

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!

Verwandte Etiketten:
Quelle:yisu.com
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage