热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

springboot笔记日志记录、启动加载、定时任务(五)

spring-boot笔记-日志记录、启动加载、定时任务(五),Go语言社区,Golang程序员人脉社

日志记录

spring boot支持的日志框架有:logback,Log4j2,Log4j和Java Util Logging,默认使用的是logback日志框架,在起基础包中就可以看到一些默认的配置:具体配置大家可以从源码中多看看
这里写图片描述
自定义输出级别:可以直接在application.properties中进行配置

logging.level.org.springframework.web=DEBUG logging.level.com.example.demo=TRACE

这样相当于我们在logback.xml 中配置的对应的日志级别。名称以logging.level开头,后面跟要输入日志的包名。 如果在 logback.xml 和 application.properties 中定义了相同的配置(如都配置了 org.springframework.web)但是输出级别不同,则实际上 application.properties 的优先级高于 logback.xml

自定义logback文件
对于一些项目,我们有自己约定的日志输出格式,如果需要自己来定义logback文件,可以直接在resources目录下新建logback.xml即可【具体logback配置这里不再多述】。
这里写图片描述
其实我们可以通过启动时的日志输出来看:

18:41:48,617 |-INFO in ch.qos.logback.classic.LoggerContext[default] - Could NOT find resource [logback.groovy] 18:41:48,617 |-INFO in ch.qos.logback.classic.LoggerContext[default] - Could NOT find resource [logback-test.xml] 18:41:48,617 |-INFO in ch.qos.logback.classic.LoggerContext[default] - Found resource [logback.xml] at [file:/D:/intelliIdea/demo/target/classes/logback.xml]

可以发现SpringBoot会先找logback.groovy,找不到再找logback-test.xml,如果再找不到继续找logback.xml。这里我们是找到了,如果找不到就会使用默认的logback配置。

其他日志类型配置:这里是一个配置log4j的例子,大家有兴趣的可以看看。

启动加载:CommandLineRunner

实际应用中,我们会有在项目服务启动的时候就去加载一些数据或做一些事情这样的需求。为了解决这样的问题,spring Boot 为我们提供了一个方法,通过实现接口 CommandLineRunner 来实现。

很简单,只需要一个类就可以,无需其他配置。 来看下具体代码:

import org.springframework.boot.CommandLineRunner; import org.springframework.core.annotation.Order; import org.springframework.stereotype.Component; /** * Created by gonghao on 2017/6/5. * 服务启动执行类 */ @Component @Order(value = 1)//如果有多个的话,执行优先级是按value值从小到大顺序【越小越先执行】 public class GhStartUpRunner implements CommandLineRunner { @Override public void run(String... args) throws Exception { System.out.println("启动加载类:11111111"); } }

看下控制台输出:
这里写图片描述

定时任务

在spring Boot中使用定时任务也是相当简单,它的时间表达式和一般的spring项目中的是一样的,我们直接看下代码即可:

import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.context.annotation.Configuration; import org.springframework.scheduling.annotation.EnableScheduling; import org.springframework.scheduling.annotation.Scheduled; import java.util.Date; /** * Created by gonghao on 2017/6/8. */ @Configuration @EnableScheduling public class ScheduleDemo { private final Logger log = LoggerFactory.getLogger(ScheduleDemo.class); @Scheduled(cron = "0 0/1 * * * ?")//1分钟跑一次 public void doSchedule(){ log.info("spring boot 定时任务:date "+ new Date()); } }

通过控制台打印看下结果:

2017-06-14 19:03:00.003 [pool-3-thread-1] INFO com.example.demo.utils.ScheduleDemo[ScheduleDemo.java:21] - spring boot 定时任务:date Wed Jun 14 19:03:00 CST 2017 2017-06-14 19:04:00.004 [pool-3-thread-1] INFO com.example.demo.utils.ScheduleDemo[ScheduleDemo.java:21] - spring boot 定时任务:date Wed Jun 14 19:04:00 CST 2017

推荐阅读
  • Maven + Spring + MyBatis + MySQL 环境搭建与实例解析
    本文详细介绍如何使用MySQL数据库进行环境搭建,包括创建数据库表并插入示例数据。随后,逐步指导如何配置Maven项目,整合Spring框架与MyBatis,实现高效的数据访问。 ... [详细]
  • spring boot使用jetty无法启动 ... [详细]
  • 本文探讨了如何通过Service Locator模式来简化和优化在B/S架构中的服务命名访问,特别是对于需要频繁访问的服务,如JNDI和XMLNS。该模式通过缓存机制减少了重复查找的成本,并提供了对多种服务的统一访问接口。 ... [详细]
  • 本文将从基础概念入手,详细探讨SpringMVC框架中DispatcherServlet如何通过HandlerMapping进行请求分发,以及其背后的源码实现细节。 ... [详细]
  • 本文详细探讨了在Web开发中常见的UTF-8编码问题及其解决方案,包括HTML页面、PHP脚本、MySQL数据库以及JavaScript和Flash应用中的乱码问题。 ... [详细]
  • 本文探讨了如何通过优化 DOM 操作来提升 JavaScript 的性能,包括使用 `createElement` 函数、动画元素、理解重绘事件及处理鼠标滚动事件等关键主题。 ... [详细]
  • 一、Advice执行顺序二、Advice在同一个Aspect中三、Advice在不同的Aspect中一、Advice执行顺序如果多个Advice和同一个JointPoint连接& ... [详细]
  • Web动态服务器Python基本实现
    Web动态服务器Python基本实现 ... [详细]
  • 深入理解:AJAX学习指南
    本文详细探讨了AJAX的基本概念、工作原理及其在现代Web开发中的应用,旨在为初学者提供全面的学习资料。 ... [详细]
  • HTML:  将文件拖拽到此区域 ... [详细]
  • 本文档详细介绍了软通动力Java开发工程师职位的笔试题目,涵盖了Java基础、集合框架、JDBC、JSP等内容,并提供了详细的答案解析。 ... [详细]
  • 处理Android EditText中数字输入与parseInt方法
    本文探讨了如何在Android应用中从EditText组件安全地获取并解析用户输入的数字,特别是用于设置端口号的情况。通过示例代码和异常处理策略,展示了有效的方法来避免因非法输入导致的应用崩溃。 ... [详细]
  • 问题场景用Java进行web开发过程当中,当遇到很多很多个字段的实体时,最苦恼的莫过于编辑字段的查看和修改界面,发现2个页面存在很多重复信息,能不能写一遍?有没有轮子用都不如自己造。解决方式笔者根据自 ... [详细]
  • protobuf 使用心得:解析与编码陷阱
    本文记录了一次在广告系统中使用protobuf进行数据交换时遇到的问题及其解决过程。通过这次经历,我们将探讨protobuf的特性和编码机制,帮助开发者避免类似的陷阱。 ... [详细]
  • Bootstrap Paginator 分页插件详解与应用
    本文深入探讨了Bootstrap Paginator这款流行的JavaScript分页插件,提供了详细的使用指南和示例代码,旨在帮助开发者更好地理解和利用该工具进行高效的数据展示。 ... [详细]
author-avatar
温蚊童鞋_612
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有