当前位置: 首页 > 知识库问答 >
问题:

如何将记录器注入样例Spring Boot应用程序中的字段?

解阳泽
2023-03-14

我想要的是让spring autowire成为伐木工人。所以,换句话说,我想让这个工作:

import javax.servlet.http.HttpServletResponse;

import org.slf4j.Logger;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;

@Controller
public class MainController {

    @Autowired
    private Logger logger;
    
    @RequestMapping("/")
    public String enterSite(HttpServletResponse response) {
        logger.info("site entered");
        return "welcome";
    }
}
<parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>1.2.0.M1</version>
        <relativePath /> <!-- lookup parent from repository -->
    </parent>

    <dependencies>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-data-jpa</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-data-rest</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-actuator</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <scope>test</scope>
        </dependency>
        <dependency>
            <groupId>org.apache.tomcat.embed</groupId>
            <artifactId>tomcat-embed-jasper</artifactId>
            <scope>provided</scope>
        </dependency>
        <dependency>
            <groupId>javax.servlet</groupId>
            <artifactId>jstl</artifactId>
        </dependency>

        <dependency>
            <groupId>postgresql</groupId>
            <artifactId>postgresql</artifactId>
            <version>9.1-901.jdbc4</version>
        </dependency>
        <!-- <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> 
            </dependency> -->
    </dependencies>

它说,如果您使用其中一个初始POM(我有),则使用Logback--但用于内部日志记录。它能在我的课上被autowired吗?

共有1个答案

微生慈
2023-03-14

如果这里的目标是减少代码,那么尝试Project Lombok。然后您甚至不需要声明记录器-只需添加一个注释并使用log而不是logger

所以上面的代码现在看起来如下所示:

import javax.servlet.http.HttpServletResponse;

import org.slf4j.Logger;
// import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;

import lombok.extern.slf4j.Slf4j;

@Slf4j
@Controller
public class MainController {

    @RequestMapping("/")
    public String enterSite(HttpServletResponse response) {
        log.info("site entered");
        return "welcome";
    }
}
 类似资料:
  • 我去了我的应用服务 在那里我启用了:应用程序日志记录(Blob)和Web服务器日志记录(存储) 上面的设置开始记录一个. log文件,其中每一行都是对我的应用的HTTP请求,标题如下: 我感兴趣的是为服务器响应HTTP 500的请求记录发布的JSON。我如何从Azure门户实现这一点?

  • 我有一个调度程序,它每 4 小时轮询一次数据,并根据某些逻辑插入到表中。我还使用了注释,并且每次检查表中是否已存在数据。如果记录不存在,它将插入。当我是 SpringBoot 应用程序的多个实例时,每个实例都运行调度程序,并且某些数据并非全部重复。这意味着我发现该表包含重复记录。我插入的表是应用程序的现有表,很少有列没有使用唯一约束进行定义。请告诉我即使调度程序从多个实例运行,如何在数据库表中维护

  • 我在我的Web应用程序中配置了log4j2,它将调试/信息消息记录到控制台。我想使用记录器将每个超文本传输协议请求中收到的特定字段写入新文件。我明白添加一个文件附加到现有的文件将写入配置日志记录的所有日志消息,但是我想使用这个新的记录器只写入特定的字段。 我想rollingfile appender会有所帮助,它会为每个请求创建一个新文件,并将收到的一些输入字段保存为该请求的一部分。 非常感谢。

  • 问题内容: 我尝试使用angular-ui,并尝试注入$ stateProvider: html js(test / appModule.js) 堆栈跟踪 如果我删除带有注释的 $ stateProvider 和 ui.router ,那么一切都会起作用: 那么注入 $ stateProvider 的问题有解决的任何想法吗? PS 我尝试了ui示例,它可以工作,但是我无法弄清楚为什么我的不行。 问

  • 我有Kafka Streams java应用程序启动并运行。我试图使用KSQL创建简单的查询,并使用Kafka流来实现复杂的解决方案。我希望将KSQL和Kafka流作为Java应用程序运行。 我打算通过https://github.com/confluentinc/ksql/blob/master/ksqldb-examples/src/main/java/io/confluent/ksql/em