Spring Loggin没有显示在控制台中

问题描述

我在Spring Boot Loggin方面苦苦挣扎。我无法在控制台上打印log.info或log.error。 这也是我的pom.xml文件和application.properties。 我想知道为什么这种现象会发生,因为我的pom文件中没有任何特定的声明。

<?xml version="1.0" encoding="UTF-8"?>

4.0.0 org.springframework.boot 弹簧启动启动器父母 2.4.0快照 com.jgeekmz 管理应用 0.0.1-快照 管理应用 申请管理

<properties>
    <java.version>11</java.version>
</properties>

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

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

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

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

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

    <dependency>
        <groupId>org.projectlombok</groupId>
        <artifactId>lombok</artifactId>
        <optional>true</optional>
    </dependency>

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

    <dependency>
        <groupId>org.springframework.security</groupId>
        <artifactId>spring-security-test</artifactId>
    </dependency>

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

    <dependency>
        <groupId>mysql</groupId>
        <artifactId>mysql-connector-java</artifactId>
    </dependency>

    <dependency>
        <groupId>jakarta.validation</groupId>
        <artifactId>jakarta.validation-api</artifactId>
        <version>2.0.2</version>
    </dependency>

    <!-- https://mvnrepository.com/artifact/com.nulab-inc/zxcvbn -->
    <dependency>
        <groupId>com.nulab-inc</groupId>
        <artifactId>zxcvbn</artifactId>
        <version>1.3.0</version>
    </dependency>

    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-mail</artifactId>
        <version>2.2.5.RELEASE</version>
    </dependency>

    <dependency>
        <groupId>org.junit.platform</groupId>
        <artifactId>junit-platform-commons</artifactId>
    </dependency>
</dependencies>

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

<repositories>
    <repository>
        <id>spring-milestones</id>
        <name>Spring Milestones</name>
        <url>https://repo.spring.io/milestone</url>
    </repository>
    <repository>
        <id>spring-snapshots</id>
        <name>Spring Snapshots</name>
        <url>https://repo.spring.io/snapshot</url>
        <snapshots>
            <enabled>true</enabled>
        </snapshots>
    </repository>
</repositories>
<pluginRepositories>
    <pluginRepository>
        <id>spring-milestones</id>
        <name>Spring Milestones</name>
        <url>https://repo.spring.io/milestone</url>
    </pluginRepository>
    <pluginRepository>
        <id>spring-snapshots</id>
        <name>Spring Snapshots</name>
        <url>https://repo.spring.io/snapshot</url>
        <snapshots>
            <enabled>true</enabled>
        </snapshots>
    </pluginRepository>
</pluginRepositories>
package com.jgeekmz.ManagementApp;

 import com.jgeekmz.ManagementApp.models.Post;
 import com.jgeekmz.ManagementApp.models.User;
 import com.jgeekmz.ManagementApp.repositories.*;
 import com.jgeekmz.ManagementApp.services.PostService;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Controller;
 import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.ModelAttribute;
 import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.servlet.mvc.support.RedirectAttributes;
import org.springframework.web.servlet.view.RedirectView;

@控制器 公共类ApplicationController { 记录器日志= LoggerFactory.getLogger(ApplicationController.class);

private final VehicleRepository vehicleRepo;
private final EmployeeRepository employeeRepo;
private final LocationRepository locationRepo;
private final PostService postService;
private final PostRepository postRepo;
private final UserRepository userRepository;

@Autowired
public ApplicationController(VehicleRepository vehicleRepo,EmployeeRepository employeeRepo,LocationRepository locationRepo,PostService postService,PostRepository postRepo,UserRepository 
userRepository) {
    this.vehicleRepo = vehicleRepo;
    this.employeeRepo = employeeRepo;
    this.locationRepo = locationRepo;
    this.postService = postService;
    this.postRepo = postRepo;
    this.userRepository = userRepository;
}

//Index page plus count vehicles,users,employees,locations. Find all posts.
@RequestMapping(value = "/index",method = RequestMethod.GET)
public String goHome(Model model) {
    // System.out.println(model);
    // System.out.println(repo);
    // long t = repo.count();
    // System.out.println(t);
    // System.out.println(postRepo);
    model.addAttribute("tcount",vehicleRepo.count());
    model.addAttribute("empcount",employeeRepo.count());
    model.addAttribute("locations",locationRepo.count());
    model.addAttribute("posts",postRepo.findAll());
    model.addAttribute("tusers",userRepository.count());
    return "index";
}

@RequestMapping("/")
public String goDashboard() {
    return "/index";
}

//Add new post on the index page
@RequestMapping(value = "/index/addNewPost",method = RequestMethod.POST)
public String addNewPost(Post post) {
    System.out.println(post);
    postService.save(post);
    return "redirect:/index";
}

//@GetMapping("/users/checkUser")
@RequestMapping(value = "/users/checkUser",method = RequestMethod.GET)
public RedirectView checkUser(@ModelAttribute("user") User user,RedirectAttributes redir) {
    //User usr = new User();
    String usrName = user.getUsername();
    log.info("User" + usrName);
    User userName = userRepository.findByUsername(usrName);
    Boolean checkUserValidation;
    checkUserValidation = userRepository.findByEnabled(usrName);

   /* User valid = userRepository.findByEnabled(usrName);
    System.out.println(valid);*/

    RedirectView redirectView = new RedirectView("/login",true);
    RedirectView redirectViewTwo = new RedirectView("/index",true);
    redir.addFlashAttribute("messageUserNotExist","User is not being registered!");
    // redir.addFlashAttribute("messageUserExist","User already exist!");

    log.error(">>>> Logged user: " + userRepository.findByUsername(usrName));

    if (userName != null) {
        if (checkUserValidation) {
            log.error("User exist!");
            System.out.println("Logged in!");
            System.err.println("This is an error message");
            return redirectViewTwo;
        }
    }
    log.error("User does not exist!");
    return redirectView;
}

/*  //Going to home page
@GetMapping("/index")
public String goHome () { return "index"; }*/

@GetMapping("/login")
public String login() {
    return "login";
}

@GetMapping("/changePassword")
public String changePassword() {
    return "changePassword";
}

@GetMapping("/logout")
public String logout() {
    return "login";
}

 /*  @GetMapping("/register")
public String register(@ModelAttribute("user") User user) { return "register"; }*/

@GetMapping("/blank")
public String getBlank() {
    return "blank";
}

}

application.properties

解决方法

启用对application.properties的登录

logging.level.root=WARN
logging.level.com.jgeekmz=DEBUG

logging.pattern.console=%clr(%5p) [%logger{0}] %m%n
,

我认为如果要指定要执行的操作,则应该添加logback.xml文件,必须将其添加到ressources文件夹中:

这里是一个示例,您可以在其中记录特定的软件包...:

page.bringToFront
,

nope仍然无法在控制台上进行日志记录。我已经添加了dev-tool依赖项,但是仍然无法打印任何类型的调试跟踪。

我的支票映射:

public function __construct()
{
    $this->middleware('auth:api');
}

我的Spring Security设置:

@RequestMapping(value = "/checkUser",method = RequestMethod.POST)
    public RedirectView checkUser(User user,RedirectAttributes redir) {
    System.out.println("HERE!");

    //User usr = new User();
    String usrName = user.getUsername();
    User userName = userRepository.findByUsername(usrName);
    Boolean checkUserValidation;
    checkUserValidation = userRepository.findByEnabled(usrName);

    /* User valid = userRepository.findByEnabled(usrName);*/

    RedirectView redirectView = new RedirectView("/login",true);
    RedirectView redirectViewTwo = new RedirectView("/index",true);
    redir.addFlashAttribute("messageUserNotExist","User is not being registered!");
    redir.addFlashAttribute("messageUserExist","User already exist!");

    if (userName != null) {
        if (checkUserValidation) {
            System.out.println("User is logged in!!!!!!!!!!!" + 
            userRepository.findByUsername(usrName));
            System.out.println("HERE!");
            return redirectViewTwo;
        } else {
            System.out.println("FALSE");
        }
    }
    return redirectView;
}

基本上,我想让管理员首先激活该帐户,然后让用户收到一封带有确认消息的电子邮件,该消息表明他的帐户现在处于活动状态并且可以登录。我的想法是进行此映射,然后进行检查并而不是让他登录。但是我认为该映射在我使用Spring Security时无法正常工作,并且一切正常。

这是正确的方法还是我应该实现UserDetailService并使用它。

也是我的登录表单部分:

    @Override
protected void configure(HttpSecurity http) throws Exception {
    http
            .csrf().disable()
            .authorizeRequests()
            .antMatchers("/registerPage2","/login","/confirm","/users/**","/resources/**","/css/**","/js/**","/fonts/**","/img/**").permitAll()
            .anyRequest()
            .authenticated()
            .and()
                .formLogin()
                .loginPage("/login").permitAll()
                .loginProcessingUrl("/checkUser")
                .defaultSuccessUrl("/index",true)

            .and()
                .logout()
                .invalidateHttpSession(true)
                .clearAuthentication(true)
                .logoutRequestMatcher(new AntPathRequestMatcher("/logout"))
                .logoutSuccessUrl("/login").permitAll();
}

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...