我使用Spring Boot和log4j2进行日志记录,因为我希望日志写在文件上而不是控制台上。所以我实现了log4j2.properties并将其保存在Spring Boot项目的资源文件夹下。
logging.config=classpath:log4j2.properties
# Root logger option
log4j.rootLogger=INFO, file, DEBUG, stdout
# configuration to print into file
log4j.appender.file=org.apache.log4j.RollingFileAppender
log4j.appender.file.File=C:/Logs/app.log
log4j.appender.file.MaxFileSize=12MB
log4j.appender.file.MaxBackupIndex=10
log4j.appender.file.layout=org.apache.log4j.PatternLayout
log4j.appender.file.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} %-5p %c{1}:%L - %m%n
# configuration to print on console
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.Target=System.out
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} %-5p %c{1}:%L - %m%n
@SpringBootApplication
public class DemoApplication extends SpringBootServletInitializer {
private final static Logger log = LogManager.getLogger(DemoApplication.class);
@Override
protected SpringApplicationBuilder configure(SpringApplicationBuilder application) {
return application.sources(DemoApplication.class);
}
public static void main(String[] args) {
SpringApplication.run(DemoApplication.class, args);
log.info("**** Demo Application Started *****");
}
}
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-jpa</artifactId>
</dependency>
<!--Logging-->
<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>
<!--https://mvnrepository.com/artifact/org.springframework.boot/spring-boot-starter-log4j-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-log4j2</artifactId>
</dependency>
<dependency>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-api</artifactId>
</dependency>
<dependency>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-core</artifactId>
</dependency>
尝试在application.properties文件中添加以下内容:
logging.level.my.base.package=TRACE
logging.level.org.springframework=INFO
logging.level.org.hibernate=INFO
其中my.base.package表示整个项目的基本包
如果我在application.properties文件中指定“Logging.config=src/main/resources/log4j2.properties”,日志记录就可以正常工作。 spring boot自动检测log4j2.properties而不需要在application.properties文件中指定“logging.config=src/main/resources/log
问题内容: 我有一个愚蠢的Java日志记录问题:我正在从我的应用程序配置文件中加载日志记录配置- 但在读取文件后,它只是不记录任何内容(这看起来很像您在网上可以找到的示例,除了其他应用程序配置- 删除此设置也无济于事。“正在初始化…”日志行似乎很好,但是“启动应用程序”和任何其他消息既未记录到控制台,也从未创建过日志文件。我在这里想念什么? 记录器代码如下所示: 这是配置文件: 问题答案: 好吧,
为了使问题更加具体--我尝试的配置: 我想记录到这个单独性能日志的类位于com.myapp.common.logging下面...