我是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);
}
我想知道为什么我的日志文件没有创建日志未写入'> $ {catalina.base}/logs/logfile。
我还测试将此行放入" application.properties"中:
logging.file=../logs/mylog.log
您应该编写应用程序root软件包名称,即包含在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
。
另外,您可以在Root Logger
中添加App-File-Appender
-
<Root>
<AppenderRef ref="App-File-Appender"/>
<AppenderRef ref="Console-Appender"/>
</Root>
但是,使用RootLogger
的一般惯例是记录应用程序依赖项的错误消息。