Verwenden von Logging in Spring Boot

View more Tutorials:

1- Das Ziel der Unterricht

Einfach verstanden, "Logging" ist   "die Aufnahme (recording)" der Problems während der Operation der Applikation. Die Problems hier sind die Fehler, die Warnung, und die anderen Informationen. Diese Informationen kann in den Bildschirm  Console angezeigt werden oder in die File aufnehmen.
Wenn Sie die Applikation  Spring Boot direkt auf  Eclipse laufen, können Sie die Information aufs Fenster  Console sehen. Diese Information zeigen Sie den Zustand der Applikation, der Fehler währen der Operation der Applikation. Das ist Logging!.
Es gibt viele verschiedenen Bibliotheke  Logging wie  Logback, Log4j2, JUL,.. Spring Boot kann mit dieser Bibliotheke arbeiten. Nach Default hat  Spring Boot automatisch konfiguriert und benutzte die Bibliothek   Logback für sein  logging , und Sie brauchen  keine Konfiguration mehr, außer wenn Sie einige Arguments anpassen möchten. Die Anpassungen hier kann den Name der File bestimmen um die Information, die Vorlagen (pattern), ... schreiben.
In diesem Artikel werden wir die Operationsgrundsätze von  Logback in der Applikation  Spring Boot diskutieren und studieren den Anpassungsweg für  Logback.
Die Properties können angepasst:
logging.config
logging.exception-conversion-word
logging.file
logging.level.*
logging.path
logging.pattern.console
logging.pattern.file
logging.pattern.level
logging.register-shutdown-hook

2- Erstellen Sie das Projekt Spring Boot

Auf  Eclipse erstellen Sie das Projekt  Spring Boot.
Um  Logging zu benutzen, brauchen Sie ein der folgenden  "Starter" verwenden
  • spring-boot-starter-logging
  • spring-boot-starter-web
pom.xml
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://maven.apache.org/POM/4.0.0
    http://maven.apache.org/xsd/maven-4.0.0.xsd">
    
    <modelVersion>4.0.0</modelVersion>

    <groupId>org.o7planning</groupId>
    <artifactId>SpringBootDefaultLogging</artifactId>
    <version>0.0.1-SNAPSHOT</version>
    <packaging>jar</packaging>

    <name>SpringBootDefaultLogging</name>
    <description>Spring Boot +Default Logging</description>

    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>2.0.0.RELEASE</version>
        <relativePath/> <!-- lookup parent from repository -->
    </parent>

    <properties>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
        <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
        <java.version>1.8</java.version>
    </properties>

    <dependencies>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>

        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <scope>test</scope>
        </dependency>
    </dependencies>

    <build>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
            </plugin>
        </plugins>
    </build>

</project>
MainController.java
package org.o7planning.sblogging.controller;

import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

@Controller
public class MainController {

    private static final Logger LOGGER = LoggerFactory.getLogger(MainController.class);

    @ResponseBody
    @RequestMapping(path = "/")
    public String home() {

        LOGGER.trace("This is TRACE");
        LOGGER.debug("This is DEBUG");
        LOGGER.info("This is INFO");
        LOGGER.warn("This is WARN");
        LOGGER.error("This is ERROR");

        return "Hi, show loggings in the console or file!";
    }
    
}
Laufen Sie Ihre Applikation direkt auf   Spring Boot laufen, danach greifen Sie auf die folgende Link zu:
Auf das Fenster  Console von  Eclipse können Sie die Information von  Logs wie folgend sehen:
2018-01-14 13:21:57.593  INFO 7980 --- [nio-8080-exec-6] o.o.sblogging.controller.MainController  : This is INFO
2018-01-14 13:21:57.593  WARN 7980 --- [nio-8080-exec-6] o.o.sblogging.controller.MainController  : This is WARN
2018-01-14 13:21:57.593 ERROR 7980 --- [nio-8080-exec-6] o.o.sblogging.controller.MainController  : This is ERROR
 

3- Logging Level

Nach dem Schweregrad des Problem teilt   Logback die Information zu 5 Niveau (Level). Die niedrigste Schweregrad ist  TRACE, und die meiste ist  ERROR. Achtung: Es gibt einige Bibliothek  Logging teilt die Informationen, die aufgenommen werden brauchen, in 7 verschiedenen Niveau.

  1. TRACE
  2. DEBUG
  3. INFO
  4. WARN
  5. ERROR
  6. FATAL
  7. OFF
Nach dem Default nimmt  Spring Boot nur die Information mit dem Schweregrad von ab INFO auf.
# Default:

logging.level.root=INFO
Ändern Sie  Logging Level in  application.properties:
* application.properties *
logging.level.root=WARN

# ..
Laufen Sie Ihre Applikation wieder und sehen, dass die Information aufs Fenster  Console geschrieben:
2018-01-14 17:45:50.341  WARN 8500 --- [nio-8080-exec-1] o.o.sblogging.controller.MainController  : This is WARN
2018-01-14 17:45:50.342 ERROR 8500 --- [nio-8080-exec-1] o.o.sblogging.controller.MainController  : This is ERROR

4- Logging File

Die Default  logging Information wird in dem Bildschirm  Console geschrieben allerdings können Sie konfigurieren damit sie in die File geschrieben werden.
* application.properties *
logging.file=logs/mylog.log
Laufen Sie Ihre Applikation in  Eclipse wieder, danach besuchen Sie die folgende Link:
Dann erfrischen Sie das Projekt. Sie können sehen, dass die File logging erstellt wird.

5- Logging Pattern

Die Log Aufnahmen werden nach einer Vorlage geschrieben. Unten ist das ein Default-Vorlage (pattern) :
Und Sie können  "Logging pattern" durch die Anpassung der folgenden Properties ändern:
  1. logging.pattern.console
  2. logging.pattern.file
# Pattern:

logging.pattern.console= %d{yyyy-MMM-dd HH:mm:ss.SSS} %-5level [%thread] %logger{15} - %msg%n

# Output:

2018-Jan-17 01:58:49.958 WARN  [http-nio-8080-exec-1] o.o.s.c.MainController - This is WARN
2018-Jan-17 01:58:49.960 ERROR [http-nio-8080-exec-1] o.o.s.c.MainController - This is ERROR
 
# Pattern:

logging.pattern.console= %d{dd/MM/yyyy HH:mm:ss.SSS} %-5level [%thread] %logger{115} - %msg%n

# Output:

17/01/2018 02:15:15.052 WARN  [http-nio-8080-exec-1] org.o7planning.sblogging.controller.MainController - This is WARN
17/01/2018 02:15:15.054 ERROR [http-nio-8080-exec-1] org.o7planning.sblogging.controller.MainController - This is ERROR
# Pattern:

logging.pattern.console=%d{yy-MMMM-dd HH:mm:ss:SSS} %5p %t %c{2}:%L - %m%n

# Output:

18-January-17 02:21:20:317  WARN http-nio-8080-exec-1 o.o.s.c.MainController:22 - This is WARN
18-January-17 02:21:20:320 ERROR http-nio-8080-exec-1 o.o.s.c.MainController:23 - This is ERROR
 

View more Tutorials: