Изменить уровень ведения журнала во время выполнения в весенней загрузке приложения - PullRequest
0 голосов
/ 06 ноября 2018

Я пытаюсь изменить уровни ведения журнала (с DEBUG на ERROR или WARN) во время выполнения приложения весенней загрузки. Код приведен ниже.

Я следовал приведенным ниже сообщениям, но отправка запроса на изменение уровня ведения журнала не работала. Пожалуйста, просмотрите ниже запрос и отсутствие ответа от приложения, и я не вижу ошибок в журналах.

как изменить уровень журнала во время выполнения без перезапуска приложения весенней загрузки

https://docs.spring.io/spring-boot/docs/1.5.1.RELEASE/reference/htmlsingle/#production-ready-logger-configuration

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>

    <artifactId>spring-boot-web-spring-security</artifactId>
    <packaging>jar</packaging>
    <name>Spring Boot Web Spring Security</name>
    <description>Spring Boot Web Spring Security Example</description>
    <url>https://www.mkyong.com</url>
    <version>1.0</version>

    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>1.5.3.RELEASE</version>
    </parent>

    <properties>
        <java.version>1.8</java.version>
    </properties>

    <dependencies>

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

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-actuator</artifactId>
</dependency>
        <!-- Spring Security -->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-security</artifactId>
        </dependency>

        <dependency>
            <groupId>org.thymeleaf.extras</groupId>
            <artifactId>thymeleaf-extras-springsecurity4</artifactId>
        </dependency>

        <!-- hot swapping, disable cache for template, enable live reload -->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-devtools</artifactId>
            <optional>true</optional>
        </dependency>

        <!-- Optional, for bootstrap -->
        <dependency>
            <groupId>org.webjars</groupId>
            <artifactId>bootstrap</artifactId>
            <version>3.3.7</version>
        </dependency>

    </dependencies>
    <build>
        <plugins>
            <!-- Package as an executable jar/war -->
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
            </plugin>
        </plugins>
    </build>
</project>

Класс контроллера

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;



@Controller
public class DefaultController {

    Logger logger = LoggerFactory.getLogger(DefaultController.class);

    @GetMapping("/")
    public String home1() {
        logger.info("returning default /");
        return "/home";
    }

    @GetMapping("/home")
    public String home() {
        logger.debug("returning home");
        return "/home";
    }

    @GetMapping("/admin")
    public String admin() {
        logger.warn("returning admin");
        return "/admin";
    }

    @GetMapping("/user")
    public String user() {
        logger.error("returning user");
        return "/user";
    }

    @GetMapping("/about")
    public String about() {
        logger.trace("returning about");
        return "/about";
    }

    @GetMapping("/login")
    public String login() {
        logger.warn("returning login");
        return "/login";
    }

    @GetMapping("/403")
    public String error403() {
        return "/error/403";
    }

}

SpringSecurityConfig

  protected void configure(HttpSecurity http) throws Exception {

        http.csrf().disable()
        .authorizeRequests()
                .antMatchers("/", "/home", "/about","/proxy/**","/app/**","/admin/**","/loggers/**","/loggers/de.springbootbuch/**",
                        "/loggers/de.springbootbuch/").permitAll()
                .anyRequest().authenticated()
                .antMatchers("/admin/").hasAnyRole("ADMIN")
                .antMatchers("/user/**").hasAnyRole("USER")
                //.antMatchers("/admin/**").hasAnyRole("ADMIN")
                .and()
                .formLogin()
                .loginPage("/login")
                .permitAll()
                .and()
                .logout()
                .permitAll()
                .and()
                .exceptionHandling().accessDeniedHandler(accessDeniedHandler);  
    }

Application.properties , есть что-то, что нужно сделать с этим файлом

logging.level.org.springframework.security=ERROR
logging.level.com.test=DEBUG
management.security.enabled=false

Запросы на изменение уровня ведения журнала :

 curl -X "POST" "http://localhost:8080/loggers/de.springbootbuch"      -H "Content-Type: application/json; charset=utf-8"      -d $'{
  "configuredLevel": "WARN"
}'

curl -X "POST" "http://localhost:8080/loggers/de.springbootbuch"      -H "Content-Type: application/json; charset=utf-8"      -d $'{
  "configuredLevel": "ERROR"
}'

Ответы [ 2 ]

0 голосов
/ 06 ноября 2018

Вы можете использовать конечную точку привода пружинного привода loggers, чтобы изменить уровень регистрации требуемого класса. В Spring-boot 1.5 вы можете использовать:

`curl -X "POST" "http://localhost:8080/loggers/<class or package name>" -H "Content- 
Type: application/json; charset=utf-8" -d $'{
"configuredLevel": "ERROR"
}'`

Начиная с пружинного привода, конечные точки привода должны иметь префикс actuator.

0 голосов
/ 06 ноября 2018

Как предлагается в комментарии, изменение запроса, как показано ниже, работает

curl -X "POST" "http://localhost:8080/loggers/com.test.controller"      -H "Content-Type: application/json; charset=utf-8"      -d $'{
  "configuredLevel": "ERROR"
}'
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...