【问题标题】:How to add logging properties to spring boot application如何将日志记录属性添加到 Spring Boot 应用程序
【发布时间】:2017-04-14 20:14:12
【问题描述】:

我正在尝试将 log4j2 属性添加到我的 Spring Boot 应用程序,但没有使用给定的日志文件名创建日志文件,并且在运行应用程序时没有引发错误。

我没有在 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>

【问题讨论】:

  • log4j2.xml 文件放在项目/类路径的什么位置?

标签: java spring spring-boot log4j log4j2


【解决方案1】:

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

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

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

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

它只是在 src/main/resources 中使用具有 log4j2.xml 文件的示例 Spring Boot 项目对此进行了测试,并且没有问题。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-02-03
    • 2016-07-19
    • 1970-01-01
    • 1970-01-01
    • 2019-08-24
    • 1970-01-01
    • 2011-07-11
    • 2016-02-26
    相关资源
    最近更新 更多