Logback wird für die Java-Protokollausgabe (Spring Boot) verwendet.
"Ich möchte, dass Sie sich drehen, wenn das Protokoll 20 MB erreicht, und 20 Dateien für die Vergangenheit aufbewahren." Mir wurde gesagt, aber ich wusste überhaupt nicht, wie ich es machen sollte, also habe ich es nachgeschlagen.
logback-spring.xml Ich habe dies unter "src / main / resource" gesetzt und gedreht.
logback-spring.xml
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE logback>
<configuration>
<include resource="org/springframework/boot/logging/logback/defaults.xml"/>
<!--Einstellungen für jede Umgebung-->
<springProfile name="local">
<!--Geben Sie das Protokollverzeichnis an. was, wenn/tmp -->
<property name="LOG_DIR" value="/tmp" />
<appender name="FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
<!--Name und Pfad der Protokolldatei-->
<file> ${LOG_DIR}/adg.log</file>
<rollingPolicy class="ch.qos.logback.core.rolling.FixedWindowRollingPolicy">
<!--Dateiname nach der Drehung.".zip"Wenn Sie es anziehen, wird es ohne Erlaubnis komprimiert-->
<fileNamePattern> ${LOG_DIR}/adg_%i.log</fileNamePattern>
<!--Maximale Anzahl nach der Datei/Minimum. Nummer zu halten-->
<minIndex>1</minIndex>
<maxIndex>20</maxIndex>
</rollingPolicy>
<triggeringPolicy class="ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy">
<!--Nach Dateigröße drehen-->
<maxFileSize>20MB</maxFileSize>
</triggeringPolicy>
< encoder>
<!--Protokollausgabeformat-->
<pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%-5level] [%thread] [%file:%line %method] %msg%n</pattern>
</encoder>
</appender>
</springProfile>
<!--Einstellungen für jede Umgebung(Ich habe versucht, es so zu schreiben) -->
<springProfile name="prod">
<!--Geben Sie das Protokollverzeichnis an(Ich habe es in der Umgebung geändert) -->
<property name="LOG_DIR" value="/var/log" />
・ ・ ・
</springProfile>
<!--Protokollstufe-->
<root level="INFO">
<appender-ref ref="FILE" />
</root>
</configuration>
application.properties
#Lokale Umgebungseinstellungen
spring.profiles.active=local
Übrigens, wie ich, wie Sie das Protokoll überhaupt ausgeben? Einige Leute sagen das, also machen Sie sich eine Notiz.
LogTestController.java
package jp.adg.fuji.log.controllers;
import lombok.extern.slf4j.Slf4j;
@Slf4j
public class LogTestController {
public void logLog() {
try {
//Dies allein gibt Ihnen ein Protokoll
log.info("Info-Protokoll");
//Beschreiben Sie den Prozess
} catch (Exception e) {
// log.warn()Es gibt auch
log.error("Fehlerprotokoll", e);
}
return;
}
}
・ Ursprünglich mit dem Dateinamen logback.xml erstellt → Bei Verwendung von springProfile tritt ein Fehler auf → Ändern Sie den Dateinamen in logback-spring.xml
-Obwohl ich das Layout-Tag verwendet habe, scheint es veraltet zu sein, also habe ich es in Encoder geändert https://logback.qos.ch/codes.html#layoutInsteadOfEncoder
・ Kopieren und einfügen ohne nachzudenken
org/springframework/boot/logging/logback/base.xml
Als ich einfügte, war das App-Protokoll auch (ungewollt) in Catalina.out
Das solltest du auch haben, Es ist besser, jede Umgebung so einzustellen, Ich möchte, dass Sie mir sagen, ob es eine solche Einstellung gibt!