如何将日志记录属性添加到Spring启动应用程序

时间:2017-04-14 20:14:13

标签: java spring spring-boot log4j log4j2

我正在尝试将log4j2属性添加到我的spring启动应用程序中,但是没有使用给定的日志文件名创建日志文件,并且在运行应用程序时不会抛出任何错误。

我没有在application.properties文件中添加任何内容 下面是添加到我的pom.xml文件的依赖项

<parent>
 <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-parent</artifactId>
    <version>1.5.2.RELEASE</version>
    <relativePath/> <!-- lookup parent from repository -->
</parent>
<properties>
    <start-class>com.boot.test.SpringApp</start-class>
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
    <java.version>1.7</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-web</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-log4j2</artifactId>
 </dependency>
 <dependency>
  <groupId>org.apache.logging.log4j</groupId>
  <artifactId>log4j-api</artifactId>
  <version>2.7</version><!--$NO-MVN-MAN-VER$-->
 </dependency>
 <dependency>
  <groupId>org.apache.logging.log4j</groupId>
  <artifactId>log4j-core</artifactId>
  <version>2.7</version><!--$NO-MVN-MAN-VER$-->
 </dependency>
 <dependency>
</dependencies>

以下是log4j2.xml文件

<Configuration status="INFO">
 <Properties>
   <Property name="filename">c:\temp\spring-boot-example.log</Property>
   <Property name="defaultpattern">%d{ISO8601} %thread level=%level %logger{36} %msg%n</Property>
 </Properties>
 <Filter type="ThresholdFilter" level="trace"/>

 <Appenders>
    <Appender type="File" name="File" fileName="${filename}">
        <Layout type="PatternLayout" pattern="${defaultpattern}" />
    </Appender>
 </Appenders>

 <Loggers>
    <Logger name="com.att.sdnmon.odl" level="info" additivity="false">
        <AppenderRef ref="File"/>
    </Logger>
    <Root level="warn">
        <AppenderRef ref="File"/>
    </Root>
 </Loggers>
</Configuration>

1 个答案:

答案 0 :(得分:0)

您的maven配置没问题,您可以从 spring-boot-starter-web 依赖项中省略<exclusions>部分,将此排除项放在 spring-boot-中启动依赖就足够了。

log4j2.xml 文件中,您使用的是严格的配置语法,因此您的第一行必须是:

<Configuration status="info" strict="true">

你把配置文件放在哪里?它必须位于类路径的根目录中。

它刚刚在 src / main / resources 中使用 log4j2.xml 文件的示例Spring启动项目进行了测试,并且没有问题。