我是spring-boot应用程序的新手,想要管理日志属性以将日志写入单独的文件。但我的日志只在'Catalina.out'文件中打印。
以下是pom.xml的一部分:
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>1.5.10.RELEASE</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>
.
.
.
<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-web</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-log4j2</artifactId>
</dependency>
.
.
.
这是log4j2-spring.xml文件:
<?xml version="1.0" encoding="UTF-8"?>
<Configuration monitorInterval="60">
<Properties>
<Property name="log-path">${catalina.base}/logs</Property>
</Properties>
<Appenders>
<Console name="Console-Appender" target="SYSTEM_OUT">
<PatternLayout>
<pattern>
[%-5level] %d{yyyy-MM-dd HH:mm:ss.SSS} [%t] %c{1} - %msg%n
</pattern>>
</PatternLayout>
</Console>
<File name="App-File-Appender" fileName="${log-path}/app_log.log" >
<PatternLayout>
<pattern>
[%-5level] %d{yyyy-MM-dd HH:mm:ss.SSS} [%t] %c{1} - %msg%n
</pattern>
</PatternLayout>
</File>
<File name="SpringBoot-File-Appender" fileName="${log-path}/springboot_log.log" >
<PatternLayout>
<pattern>
[%-5level] %d{yyyy-MM-dd HH:mm:ss.SSS} [%t] %c{1} - %msg%n
</pattern>
</PatternLayout>
</File>
</Appenders>
<Loggers>
<Logger name="org.springframework.web" level="info" additivity="false">
<AppenderRef ref="SpringBoot-File-Appender"/>
<AppenderRef ref="Console-Appender"/>
</Logger>
<Logger name="guru.springframework.blog.controllers" level="info" additivity="false">
<AppenderRef ref="App-File-Appender"/>
<AppenderRef ref="Console-Appender"/>
</Logger>
<Root>
<AppenderRef ref="Console-Appender"/>
</Root>
</Loggers>
我的春季课程:
@SpringBootApplication
public class MyApplication {
public static void main(String[] args) {
SpringApplication.run(MyApplication.class, args);
}
我想知道为什么我的日志文件没有创建日志没有写入'&gt; $ {catalina.base} / logs / logfile。
我还测试将这一行放在'application.properties'中:
logging.file=../logs/mylog.log
答案 0 :(得分:0)
您应该编写应用程序根包名称,即包中包含previous
元素Logger
属性中的所有应用程序的子包和类 -
以下行 -
name
将<Logger name="guru.springframework.blog.controllers" level="info" additivity="false">
<AppenderRef ref="App-File-Appender"/>
<AppenderRef ref="Console-Appender"/>
</Logger>
替换为您的应用程序根软件包名称。
或者,您可以在guru.springframework.blog.controllers
-
App-File-Appender
Root Logger
但是,使用<Root>
<AppenderRef ref="App-File-Appender"/>
<AppenderRef ref="Console-Appender"/>
</Root>
的一般惯例是记录应用程序依赖项的错误消息。