Heim  >  Artikel  >  Java  >  So erhalten Sie Zugriff auf SpringBoot-Protokolldateien

So erhalten Sie Zugriff auf SpringBoot-Protokolldateien

WBOY
WBOYnach vorne
2023-05-12 11:46:051271Durchsuche

    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);
    • 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");
          }
      }

      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

      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!

    Stellungnahme:
    Dieser Artikel ist reproduziert unter:yisu.com. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen