SpringBoot 【 第二章 】日志管理

2019-01-25  本文已影响0人  陈兄
image

Log4j记录日志

很熟悉常见,开发人员常用的一个日志记录插件

引入log4j依赖

引入spring-boot-starter,其中包括spring-boot-starter-log4j。

  <!-- Spring Boot web依赖 -->
    <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>
    <!-- Spring Boot Log4j依赖 -->
    <dependency>
      <groupId>org.springframework.boot</groupId>
      <artifactId>spring-boot-starter-log4j</artifactId>
      <version>1.3.8.RELEASE</version>
    </dependency>

配置log4j.properties

在src/main/resources目录下加入log4j.properties配置文件.

控制台输出

通过如下配置,设定root日志的输出级别为INFO,appender为控制台输出e

  # LOG4J配置
  log4j.rootCategory=INFO, e
  # 控制台输出
  log4j.appender.e=org.apache.log4j.ConsoleAppender
  log4j.appender.e.layout=org.apache.log4j.PatternLayout
  log4j.appender.e.layout.ConversionPattern=[%p]%d{yyyy-MM-dd HH:mm:ss,SSSS}%n[%m]%n

输出到文件

在开发环境,我们只是输出到控制台没有问题,但是到了生产或测试环境,或许持久化日志内容,方便追溯问题原因。可以通过添加如下的appender内容,按天输出到不同的文件中去,同时还需要为log4j.rootCategory添加名为file的appender,这样root日志就可以输出到logs/err.log文件中了。

  # LOG4J配置
  log4j.rootCategory=INFO, e
  # 控制台输出
  log4j.appender.e = org.apache.log4j.RollingFileAppender
  log4j.appender.e.maxFileSize = 100KB
  log4j.appender.e.maxBackupIndex = 10
  log4j.appender.e.ImmediateFlush = true
  log4j.appender.e.threshold = error
  log4j.appender.e.layout = org.apache.log4j.PatternLayout
  log4j.appender.e.layout.ConversionPattern = [%p]%d{yyyy-MM-dd HH:mm:ss,SSSS}%n[%m]%n
  log4j.appender.e.file = ${user.dir}/logs/err.log

分类输出

日志量较多的时候,查找问题会非常困难,常用的手段就是对日志进行分类.可以对不同级别进行分类,比如对ERROR级别输出到特定的日志文件中.
ERROR

  # 控制台输出
  log4j.appender.e = org.apache.log4j.RollingFileAppender
  log4j.appender.e.maxFileSize = 100KB
  log4j.appender.e.maxBackupIndex = 10
  log4j.appender.e.ImmediateFlush = true
  log4j.appender.e.threshold = error
  log4j.appender.e.layout = org.apache.log4j.PatternLayout
  log4j.appender.e.layout.ConversionPattern = [%p]%d{yyyy-MM-dd HH:mm:ss,SSSS}%n[%m]%n
  log4j.appender.e.file = ${user.dir}/logs/err.log

DEBUG

  # 控制台输出
  log4j.appender.d = org.apache.log4j.RollingFileAppender
  log4j.appender.d.maxFileSize = 100KB
  log4j.appender.d.maxBackupIndex = 10
  log4j.appender.d.ImmediateFlush = true
  log4j.appender.d.threshold = debug
  log4j.appender.d.layout = org.apache.log4j.PatternLayout
  log4j.appender.d.layout.ConversionPattern = [%p]%d{yyyy-MM-dd HH:mm:ss,SSSS}%n[%m]%n
  log4j.appender.d.file = ${user.dir}/logs/debug.log

INFO

  # 控制台输出
  log4j.appender.i = org.apache.log4j.RollingFileAppender
  log4j.appender.i.maxFileSize = 500KB
  log4j.appender.i.maxBackupIndex = 10
  log4j.appender.i.ImmediateFlush = true
  log4j.appender.i.threshold = info
  log4j.appender.i.layout = org.apache.log4j.PatternLayout
  log4j.appender.i.layout.ConversionPattern = [%p]%d{yyyy-MM-dd HH:mm:ss,SSSS}%n[%m]%n
  log4j.appender.i.file = ${user.dir}/logs/info.log

介绍如何在spring boot中引入log4j以及基础用户,详情请参考<strong>Log4j官方网站 [http://logging.apache.org/log4j/1.2/]</strong>
<strong>对应代码分享在 [https://github.com/UpdateCw/SpringBoot]</strong>

上一篇下一篇

猜你喜欢

热点阅读