博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Sprint Boot日志功能的使用
阅读量:6555 次
发布时间:2019-06-24

本文共 3897 字,大约阅读时间需要 12 分钟。

  在项目开发中日志功能相当重要,日志功能是一个非常好的开发助手,在本地开发环境中可以用来打印调试代码,通过日志打印的时间顺序分析程序的运行情况,从而找到问题所在,在测试环境可以用于IO性能、高并发支持、负载压力测试提供数据记录,在生产环境可以用来记录“接口状态”,“在线支付回调”, “定时任务执行”,“邮件群发”,“短信群发”等异常结果记录,在不同的环境中我们需要设置不同的日志级别。

日志级别:

Sprint Boot提供的日志功能,日志类库使用的是Slf4j、日志系统使用的是Logback。SpringBoot的Logging配置的级别有7个:

1.static Level DEBUG:

    DEBUG Level指出细粒度信息事件对调试应用程序是非常有帮助的。

2.static Level INFO:

    INFO level表明 消息在粗粒度级别上突出强调应用程序的运行过程。

3.static Level WARN:

    WARN level表明会出现潜在错误的情形。

4.static Level ERROR:

    ERROR level指出虽然发生错误事件,但仍然不影响系统的继续运行。

5.static Level FATAL:

    FATAL level指出每个严重的错误事件将会导致应用程序的退出。

Log4j日志提供了8中日志级别,功能比较强大,但Sprint Boot框架提供的日志功能完全可以满足开发需求。

Sprint Boot框架的默认级别为INFO

日志输出的优先级顺序: TRACE < DEBUG < INFO< WARN < ERROR < FATAL < OFF

通过指定日志级别(INFO)及输出源(console,myFile),可以指定日志在控制台和文件输出,并且只输出INFO级别以上的日志,不会输出DEBUG日志,如下图:

Sprint Boot日志输出有三种方式:

1.控制台输出,作为默认的输出方式,不需要配置;

2.指定文件输出

指定日志输出到指定的文件,输出的位置在项目所在文件件位置,可以在yml配置文件中指定名称,配置如下:

logging:    level:      # 设置Logback日志打印级别      root: DEBUG            # 设置mybatis日志打印级别      main.blog.mapper: DEBUG            # 按照默认的名称spring.log,生成到指定路径及日志        path: D:/JavaWeb/boot/logs        # 不指定的情况下默认生成在项目根目录,按照配置生成所需的日志名称        file: web.log

如果logging.path路径不存在,会自动创建该文件夹,这里需要注意logging.path方式和logging.file方式,只能选择一种,如果两种方式配置上,logging.path方式不会生效,logging.path和logging.file的值都可以是相对路径或者绝对路径

3.自定义日志配置管理

使用自定义配置的方式,在resources文件夹下增加logback-spring.xml日志配置文件,springBoot的自动配置会检测类路径的类库来自动激活相应的日志系统,在类路径的根目录中提供一个适合的配置文件可以对日志系统进行更进一步的定制,配置文件的路径也可以通过属性:logging.config来指定

${LOGS_HOME}/app.log
${LOGS_HOME}/app.%d{yyyy-MM-dd}.log
30
%date %5level [%thread] %logger{35} %msg%n
%d{HH:mm:ss.SSS} %p[%t] %logger{5} <%m>%n
%d - %msg%n
ERROR
DENY
ACCEPT
%msg%n
logs\example.info.%d.log
ERROR
%msg%n
logs\example.error.%d.log

springboot 日志系统loging结合@Scheduled定时器的使用,代码如下:

package com.blog.controller;import java.text.SimpleDateFormat;import java.util.Date;import org.slf4j.Logger;import org.slf4j.LoggerFactory;import org.springframework.scheduling.annotation.Scheduled;import org.springframework.stereotype.Controller;@Controller("Task")public class TaskController{    private static final Logger logger = LoggerFactory.getLogger(TaskController.class);    private static final SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy:mm:dd HH:mm:ss");        /**     * 每5秒执行一次     *      * @auther huxiaoguang     * @return void     */    @Scheduled(fixedRate = 5000)    public void Task()     {        logger.debug("定时任务执行时间:"+ dateFormat.format(new Date()));        logger.info("定时任务执行时间:"+ dateFormat.format(new Date()));        logger.warn("定时任务执行时间:"+ dateFormat.format(new Date()));        logger.error("定时任务执行时间:"+ dateFormat.format(new Date()));    }}

 

转载于:https://www.cnblogs.com/huxiaoguang/p/10818839.html

你可能感兴趣的文章
idea 下tomcat字符集问题
查看>>
shell脚本的学习(一)
查看>>
javascript创建对象(二)
查看>>
开关WIFI脚本
查看>>
win7 64位_VS2010的fftw3配置
查看>>
Java02-方法 课后作业
查看>>
hdu 1003 Max Sum (DP)
查看>>
学习进度表_二周
查看>>
tag标签
查看>>
TTS语言 录音功能
查看>>
MySQL 查询最大最小值优化
查看>>
软件工程的实践项目课程的自我目标
查看>>
Weak is not weak,Strong is not strong
查看>>
setsockopt 详解
查看>>
首次使用AWS服务器EC2
查看>>
POJ-1860-Currency Exchange
查看>>
[深度学习]受限玻尔兹曼机生成手写数字训练样本原理
查看>>
莫比乌斯反演
查看>>
Django Hello World
查看>>
分析rails日志,计算响应率
查看>>