log4J对Sping boot 工程的日志记录

简单说明一下Spring Boot工程中添加log4J的过程

(1)引入依赖

如下图是log4j的依赖引用,在我们创建Spring Boot工程的时候,在引入的Spring-boot-starter中包含了Spring-boot-starter-logging,Spring-boot-starter-logging是Spring Boot 工程默认的日志框架Logback,所以在我们引入log4j之前,需要先排除该包的依赖,再引入log4j的依赖。
这里写图片描述

(2)添加log4j配置文件

在引入log4j依赖之后,只需要在src/main/resources 目录下加入 log4j2-spring.xml的配置文件,配置信息如下图:

<?xml version="1.0" encoding="UTF-8"?>
<Configuration>

    <Properties>
        <Property name="logLocation">logs/</Property>
        <Property name="logName">springboot</Property>
        <Property name="commonPattern">[%-5level] %d{yyyy-MM-dd HH:mm:ss.SSS} [%t] %c{1} - %msg%n</Property>
    </Properties>

    <Appenders>

        <Console name="STDOUT">
            <PatternLayout pattern="${commonPattern}"/>
            <ThresholdFilter level="INFO" onMatch="ACCEPT" onMismatch="DENY"/>
        </Console>

        <RollingFile name="LOGFILE" fileName="${logLocation}/${logName}.log"
                     filePattern="${logLocation}/${logName}-%d{yyyy-MM-dd}.log">
            <PatternLayout pattern="${commonPattern}"/>
            <ThresholdFilter level="WARN" onMatch="ACCEPT" onMismatch="DENY"/>
            <TimeBasedTriggeringPolicy interval="1" modulate="true"/>
        </RollingFile>

    </Appenders>

    <Loggers>
        <Root level="TRACE">
            <AppenderRef ref="STDOUT"/>
            <AppenderRef ref="LOGFILE"/>
        </Root>
    </Loggers>

</Configuration>

简单介绍一下配置文件的信息:
首先介绍loggers标签,用于定义logger的lever和所采用的appender,其中appender-ref必须为先前定义的appenders的名称,例如,如果level为Console,那么log就会以appender所定义的输出格式来输出log。
root标签为log的默认输出形式,如果一个类的log没有在loggers中明确指定其输出lever与格式,那么就会采用root中定义的格式。
简单介绍几个其中常用的扩展组件
1,ConsoleAppender

输出结果到System.out或是System.err。

2,FileAppender

输出结果到指定文件,同时可以指定输出数据的格式。append=“false”指定不追加到文件末尾

3,RollingFileAppender

  自动追加日志信息到文件中,直至文件达到预定的大小,然后自动重新生成另外一个文件来记录之后的日志。

(3)在application.properties中声明log4j的配置文件的位置

这里写图片描述

(4)添加log4j的辅助类:

package org.wxshan.springboot.utils;


import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;

/**
 * Created by Administrator on 2017/9/6 0006.
 *
 * Logger 日志记录辅助类
 */
public class log {

    private static final Logger LOGGER = LogManager.getLogger();

    private log(){
        throw new UnsupportedOperationException("cannot be instantiated");
    }

    public static Logger getLogger(){
        return LOGGER;
    }

    public static void trace(String msg){
        LOGGER.trace(msg);
    }

    public  static void debug(String msg){
        LOGGER.debug(msg);
    }

    public  static void info(String msg){
        LOGGER.info(msg);
    }

    public  static void warn(String msg){
        LOGGER.warn(msg);
    }

    public  static void error(String msg){
        LOGGER.error(msg);
    }



}

测试log4j

在控制台输出结果如下图:
这里写图片描述

项目中log文件目录:
这里写图片描述
上图可以看到对项目工程的日志采取每天一个文件的保存,方便日志的管理。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值