SpringBoot-Protokolldatei
1. Was ist die Verwendung von Protokollen? Das Protokoll ist ein wichtiger Teil des Programms und lässt Sie die Konsole nicht öffnen, um das anzuzeigen log, dann finden Sie den Fehlerbericht. Der Grund?
Für uns besteht der Hauptzweck von Protokollen darin, Probleme zu beheben und zu lokalisieren. Neben der Erkennung und Lokalisierung von Problemen können wir durch Protokolle auch die folgenden Funktionen erreichen:
Benutzeranmeldeprotokolle aufzeichnen, um die Analyse zu erleichtern, ob sich Benutzer normal anmelden oder Benutzer böswillig knacken Systembetriebsprotokolle aufzeichnen, um Daten zu erleichtern Wiederherstellung Zeichnen Sie die Ausführungszeit des Programms mit dem Positionierungsoperator auf , um dem Optimierungsprogramm die Bereitstellung von Datenunterstützung in der Zukunft zu erleichtern 2 So verwenden Sie Protokolle: Das Spring Boot-Projekt verfügt standardmäßig über eine Protokollausgabe Wenn es gestartet wird, wie unten gezeigt:
Anhand der obigen Informationen können wir Folgendes finden:
![So erhalten Sie Zugriff auf SpringBoot-Protokolldateien](https://img.php.cn/upload/article/000/887/227/168386316945788.png)
Spring Boot verfügt über ein integriertes Protokollierungsframework
Standardmäßig ist das Ausgabeprotokoll nicht definiert und Wird vom Entwickler gedruckt. Wie kann der Entwickler es im Programm „Protokoll drucken“ definieren?
Das Protokoll wird standardmäßig auf der Konsole gedruckt, aber das Konsolenprotokoll kann nicht dauerhaft gespeichert werden.
3. Benutzerdefinierter Protokolldruck
Implementierungsschritte für Entwickler zum Anpassen des Protokolldrucks:
Rufen Sie das Protokoll im Programm ab
-
Verwenden Sie die entsprechende Syntax des Protokollobjekts, um den zu druckenden Inhalt auszugeben
-
3.1 Erhalten Sie das Protokollobjekt im Programm
private static final Logger log = LoggerFactory.getLogger(UserController.class);
Nach dem Login kopieren
Die Protokollfabrik muss den Typ jeder Klasse übergeben, damit wir die zugehörige Klasse des Protokolls kennen und das Problem bequemer und intuitiver lokalisieren können
Hinweis: Das Logger-Objekt gehört zum org.slf4j-Paket. Machen Sie nicht den falschen Fehler Geben Sie das Protokoll aus,
4. Protokollebene
4.1 Wozu dient die Protokollebene? ![So erhalten Sie Zugriff auf SpringBoot-Protokolldateien](https://img.php.cn/upload/article/000/887/227/168386316977176.png)
Die Protokollebene kann Ihnen dabei helfen, wichtige Informationen herauszufiltern. Wenn Sie beispielsweise die Protokollebene auf „Fehler“ setzen, können Sie nur das Fehlerprotokoll des Programms sehen und die normalen Debug-Protokolle und Geschäftsprotokolle ignorieren. Dies spart Entwicklern Zeit beim Screening
Die Protokollebene kann steuern, ob ein Programm Protokolle in verschiedenen Umgebungen drucken muss. In der Entwicklungsumgebung benötigen wir beispielsweise sehr detaillierte Informationen, während in der Produktionsumgebung nur wenige Informationen erforderlich sind Informationen werden ausgegeben, um Leistung und Sicherheit aufrechtzuerhalten. Protokolle. Diese Anforderungen können durch Protokollebenen erfüllt werden. Das bedeutet ein wenig, die unterste Ebene
Debug: Erforderlich Drucken von Schlüsselinformationen während des Debuggens
Info: Normale Druckinformationen (Standardprotokollebene)
Warnung: Warnung: Beeinträchtigt nicht die Verwendung, aber Probleme, die erforderlich sind Achtung
Fehler: Fehlerinformationen, Fehlerprotokollinformationen auf höherer Ebene
fatal: Schwerwiegend, ein Ereignis, das dazu führt, dass das Programm die Ausführung aufgrund einer Code-Ausnahme beendet Die Reihenfolge der Protokollebenen: -
- Je höher, desto weniger Informationen werden empfangen, wie eingestellt. Wenn Sie eine Warnung erhalten, können Sie nur die Warnung und die darüber liegenden Ebenen empfangen.
Einstellungen für die Protokollebene Sehen Sie sich die Konfigurationsdatei an und beobachten Sie die von der Konsole ausgegebene Protokollstufe verwendet wird. Das heißt, die Priorität lokaler Protokolle ist höher als die Priorität globaler Protokolle- 5. Die oben genannten Protokolle werden auf der Konsole ausgegeben. In der Produktionsumgebung müssen wir die Protokolle jedoch speichern dass wir nach dem Auftreten von Problemen zurückverfolgen können. Der Vorgang des Speicherns von Protokollen wird als Persistenz bezeichnet. Wenn Sie die Protokolle beibehalten möchten, müssen Sie lediglich das Speicherverzeichnis der Protokolle in der Konfigurationsdatei angeben oder die Protokollspeicherdatei angeben Name und Spring Boot schreiben die Konsolenprotokolle. Gehen Sie zum entsprechenden Verzeichnis oder zur entsprechenden Datei.
- Konfigurieren Sie den Speicherpfad der Protokolldatei:
@Controller
@ResponseBody
public class UserController {
private static final Logger log = LoggerFactory.getLogger(UserController.class);
@RequestMapping("/sayhi")
public void sayHi() {
log.trace("trace");
log.debug("debug");
log.info("info");
log.warn("warn");
log.error("error");
}
}
Nach dem Login kopieren
Der Speicherpfad, der Einstellungen für Escape-Zeichen enthält. Wir können diesen / verwenden.
als Trennzeichen. - Wenn Sie unter Windows darauf bestehen, das Trennzeichen zu verwenden, müssen wir das Escape-Zeichen
verwenden, um es zu maskieren配置日志文件的文件名:
logging:
file:
name: D:/rizhi/logger/spring.log
Nach dem Login kopieren
6. 更简单的日志输出–lombok
每次使用LoggerFactory.getLogger很繁琐,且每个类都添加一遍,也很麻烦。这里的lombok是一种更好的日志输出方式
添加lombok框架支持
使用@slf4j注解输出日志
6.1 添加 lombok 依赖
首先要安装一个插件:
![So erhalten Sie Zugriff auf SpringBoot-Protokolldateien](https://img.php.cn/upload/article/000/887/227/168386317034118.png)
然后再pom.xml页面右键、
![So erhalten Sie Zugriff auf SpringBoot-Protokolldateien](https://img.php.cn/upload/article/000/887/227/168386317049824.png)
![So erhalten Sie Zugriff auf SpringBoot-Protokolldateien](https://img.php.cn/upload/article/000/887/227/168386317093229.png)
![So erhalten Sie Zugriff auf SpringBoot-Protokolldateien](https://img.php.cn/upload/article/000/887/227/168386317036013.png)
最后重新添加依赖就可以了
![So erhalten Sie Zugriff auf SpringBoot-Protokolldateien](https://img.php.cn/upload/article/000/887/227/168386317155522.png)
6.2 输出日志
使用@Slf4j注解,在程序中使用log对象即可输入日志并且只能使用log对象才能输出,这是lombok提供的对象名
6.3 lombok原理解释
lombok 能够打印⽇志的密码就在 target ⽬录⾥⾯,target 为项⽬最终执⾏的代码,查看 target ⽬录我们可以发现:
![So erhalten Sie Zugriff auf SpringBoot-Protokolldateien](https://img.php.cn/upload/article/000/887/227/168386317132920.png)
这里的@Slf4j注解变成了一个对象。
下面是java程序的运行原理:
![So erhalten Sie Zugriff auf SpringBoot-Protokolldateien](https://img.php.cn/upload/article/000/887/227/168386317157367.png)
6.4 lombok更多注解说明
基本注解
注解 |
作用 |
@Getter |
自动添加get方法 |
@Setter |
自动添加set方法 |
@ToString |
自动添加toString方法 |
@EqualsAndHashCode |
自动添加equals和hasCode方法 |
@NoArgsConstructor |
自动添加无参构造方法 |
@AllArgsConstructor |
自动添加全属性构造方法,顺序按照属性的定义顺序 |
@NonNull |
属性不能为null |
@RequiredArgsConstructor |
自动添加必须属性的构造方法,final + @NonNull的属性为需 |
组合注解:
注解 |
作用 |
@Data |
@Getter+@Setter+EqualsAndHashCode+@RequiredArgsConstructor+@NoArgsConstructor |
日志注解
注解 |
作用 |
@Slf4j |
添加一个名为log的对象 |
Das obige ist der detaillierte Inhalt vonSo erhalten Sie Zugriff auf SpringBoot-Protokolldateien. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!