Inhaltsverzeichnis
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?
Hinweis: Das Logger-Objekt gehört zum org.slf4j-Paket. Machen Sie nicht den falschen Fehler Geben Sie das Protokoll aus,
Debug: Erforderlich Drucken von Schlüsselinformationen während des Debuggens
Fehler: Fehlerinformationen, Fehlerprotokollinformationen auf höherer Ebene
6. 更简单的日志输出–lombok
6.1 添加 lombok 依赖
6.2 输出日志
6.3 lombok原理解释
6.4 lombok更多注解说明
Heim Java javaLernprogramm So erhalten Sie Zugriff auf SpringBoot-Protokolldateien

So erhalten Sie Zugriff auf SpringBoot-Protokolldateien

May 12, 2023 am 11:46 AM
springboot

    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

    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

    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

    So erhalten Sie Zugriff auf SpringBoot-ProtokolldateienDie 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

      然后再pom.xml页面右键、

      So erhalten Sie Zugriff auf SpringBoot-Protokolldateien

      So erhalten Sie Zugriff auf SpringBoot-Protokolldateien

      So erhalten Sie Zugriff auf SpringBoot-Protokolldateien

      最后重新添加依赖就可以了

      So erhalten Sie Zugriff auf SpringBoot-Protokolldateien

      6.2 输出日志

      使用@Slf4j注解,在程序中使用log对象即可输入日志并且只能使用log对象才能输出,这是lombok提供的对象名

      6.3 lombok原理解释

      lombok 能够打印⽇志的密码就在 target ⽬录⾥⾯,target 为项⽬最终执⾏的代码,查看 target ⽬录我们可以发现:

      So erhalten Sie Zugriff auf SpringBoot-Protokolldateien

      这里的@Slf4j注解变成了一个对象。

      下面是java程序的运行原理:

      So erhalten Sie Zugriff auf SpringBoot-Protokolldateien

      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!

    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

    Heiße KI -Werkzeuge

    Undresser.AI Undress

    Undresser.AI Undress

    KI-gestützte App zum Erstellen realistischer Aktfotos

    AI Clothes Remover

    AI Clothes Remover

    Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

    Undress AI Tool

    Undress AI Tool

    Ausziehbilder kostenlos

    Clothoff.io

    Clothoff.io

    KI-Kleiderentferner

    AI Hentai Generator

    AI Hentai Generator

    Erstellen Sie kostenlos Ai Hentai.

    Heißer Artikel

    R.E.P.O. Energiekristalle erklärten und was sie tun (gelber Kristall)
    3 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
    R.E.P.O. Beste grafische Einstellungen
    3 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
    R.E.P.O. So reparieren Sie Audio, wenn Sie niemanden hören können
    3 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
    WWE 2K25: Wie man alles in Myrise freischaltet
    3 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌

    Heiße Werkzeuge

    Notepad++7.3.1

    Notepad++7.3.1

    Einfach zu bedienender und kostenloser Code-Editor

    SublimeText3 chinesische Version

    SublimeText3 chinesische Version

    Chinesische Version, sehr einfach zu bedienen

    Senden Sie Studio 13.0.1

    Senden Sie Studio 13.0.1

    Leistungsstarke integrierte PHP-Entwicklungsumgebung

    Dreamweaver CS6

    Dreamweaver CS6

    Visuelle Webentwicklungstools

    SublimeText3 Mac-Version

    SublimeText3 Mac-Version

    Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

    Wie Springboot Jasypt integriert, um die Verschlüsselung von Konfigurationsdateien zu implementieren Wie Springboot Jasypt integriert, um die Verschlüsselung von Konfigurationsdateien zu implementieren Jun 01, 2023 am 08:55 AM

    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.

    Wie SpringBoot Redisson integriert, um eine Verzögerungswarteschlange zu implementieren Wie SpringBoot Redisson integriert, um eine Verzögerungswarteschlange zu implementieren May 30, 2023 pm 02:40 PM

    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

    So implementieren Sie verteilte Sperren mit Redis in SpringBoot So implementieren Sie verteilte Sperren mit Redis in SpringBoot Jun 03, 2023 am 08:16 AM

    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

    So lösen Sie das Problem, dass Springboot nach dem Einlesen in ein JAR-Paket nicht auf die Datei zugreifen kann So lösen Sie das Problem, dass Springboot nach dem Einlesen in ein JAR-Paket nicht auf die Datei zugreifen kann Jun 03, 2023 pm 04:38 PM

    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

    Vergleich und Differenzanalyse zwischen SpringBoot und SpringMVC Vergleich und Differenzanalyse zwischen SpringBoot und SpringMVC Dec 29, 2023 am 11:02 AM

    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

    So implementieren Sie Springboot+Mybatis-plus, ohne SQL-Anweisungen zum Hinzufügen mehrerer Tabellen zu verwenden So implementieren Sie Springboot+Mybatis-plus, ohne SQL-Anweisungen zum Hinzufügen mehrerer Tabellen zu verwenden Jun 02, 2023 am 11:07 AM

    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

    Wie SpringBoot Redis anpasst, um die Cache-Serialisierung zu implementieren Wie SpringBoot Redis anpasst, um die Cache-Serialisierung zu implementieren Jun 03, 2023 am 11:32 AM

    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

    So erhalten Sie den Wert in application.yml in Springboot So erhalten Sie den Wert in application.yml in Springboot Jun 03, 2023 pm 06:43 PM

    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

    See all articles