Spring(boot)忽略我的log4j.properties文件

问题描述 投票:0回答:2

这是我的主要应用程序类:

import org.apache.log4j.Logger;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.EnableAutoConfiguration;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.context.annotation.ComponentScan;

@ComponentScan
@EnableAutoConfiguration
@SpringBootApplication
public class SmartcvfrontApplication {
    final static Logger logger = Logger.getLogger(SmartcvfrontApplication.class);

    public static void main(String[] args) {
        logger.debug("Debug log message");
        logger.info("Info log message");
        logger.error("Error log message");
        SpringApplication.run(SmartcvfrontApplication.class, args);
    }
}

现在,我将属性放置的项目文件夹在哪个文件夹中也无关紧要,甚至完全将其删除 - 日志会显示在我的控制台中,但没有创建文件。 这和我可以完全删除属性的事实使我怀疑春季启动只是忽略了属性文件,而只是使用基本配置。

没有人看到我在哪里出错?
update:我遵循答案,现在文件在我的C驱动器上,而我认为它会在我的项目中。这应该发生还是我错了?
另外,当我想从其他类(例如恒温器controller)登录时,它不会将其添加到日志文件中...我在这里做错了什么?
这是ThermostatController类的一部分:


@Controller public class ThermostatController { final static Logger logger = Logger.getLogger(ThermostatController.class); // Temperatures private static int currentTemperature; private static int chosenTemperature; @GetMapping("/") public String loadThermostatView(Model model) { logger.info("Load ThermostatView"); model.addAttribute("currentTemperature", getcurrentTemp()); model.addAttribute("chosenTemperature", getchosenTemperature()); return "thermostatView"; } }

eDit:这是我的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>com.cgimasterclass.teamdice.smartcv.frontend</groupId> <artifactId>smartcvfront</artifactId> <version>0.0.1-SNAPSHOT</version> <packaging>jar</packaging> <name>smartcvfront</name> <description>Smart CV front end</description> <parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>1.5.7.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</artifactId> <exclusions> <exclusion> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-logging</artifactId> </exclusion> </exclusions> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-mobile</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-test</artifactId> <scope>test</scope> </dependency> <dependency> <groupId>org.webjars</groupId> <artifactId>bootstrap</artifactId> <version>3.3.7-1</version> </dependency> <dependency> <groupId>org.postgresql</groupId> <artifactId>postgresql</artifactId> <version>42.1.4</version> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-log4j</artifactId> <version>1.3.8.RELEASE</version> </dependency> </dependencies> <build> <plugins> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> </plugin> </plugins> </build> </project>



我也有同样的问题,以下解决方案
did没有帮助我...

<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter</artifactId> <exclusions> <exclusion> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-logging</artifactId> </exclusion> </exclusions> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-log4j</artifactId> <version>1.3.8.RELEASE</version> </dependency>

...所以我尝试用下一个
替换
java spring log4j
2个回答
4
投票

它起作用了! ...如果问题仍然是实际的 - 尝试!也许这种方式会帮助您。 您的配置似乎是正确的。如果将属性文件放在正确的路径中,则依赖关系可能会出现问题。然后用以下内容替换您的依赖性,然后尝试:

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter</artifactId>
    <exclusions>
        <exclusion>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-logging</artifactId>
        </exclusion>
    </exclusions>
</dependency>
<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-log4j</artifactId>
    <version>1.3.8.RELEASE</version>
</dependency>

这个答案对我有用,与其他两个答案不同,因为与父母不同,我将logback排除在外,但是我像Pateral一样添加了spring-boot-starter-starter-log4j。只有这样,log4j.properties才能使用熟悉的logger.getLogging(myclass.class。由于我在eclipse中,log4j.properties都需要在src/main/resources下放置。否则,正如其他人所指出的那样,它需要是在class路径中,正如Eclipse在项目属性中显示的那样,Java构建路径,顺序和导出选项卡。
<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter</artifactId> <exclusions> <exclusion> <groupId>ch.qos.logback</groupId> <artifactId>logback-classic</artifactId> </exclusion> </exclusions> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-log4j</artifactId> <version>1.3.8.RELEASE</version> </dependency>


2
投票
最新问题
© www.soinside.com 2019 - 2025. All rights reserved.