spring-boot笔记-日志记录、启动加载、定时任务(五)
2017-06-14 19:06
736 查看
日志记录
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
相关文章推荐
- spring boot启动简单的定时任务
- spring boot 集成quartz 2.0 实现前端动态配置(获取spring上下文)的两种方式,启动数据库中已开启定时任务
- Spring quartz 任务调度器 启动加载,定时加载
- Tomcat启动后加载两次web.xml的问题(因为spring定时任务执行了俩次,引出此问题)
- Spring Boot学习进阶笔记(五)-添加定时任务
- 在cron启动定时任务后总是会启动一个[sendmail] 进程的解决方法, 并且每次cron任务之后msmtp.log总是记录一条发送失败的日志
- SpringBoot 定时任务踩坑记录
- Spring Boot 定时任务的使用
- (14)Spring Boot定时任务的使用【从零开始学Spring Boot】
- Spring Boot 日志记录 SLF4J
- Spring Boot 启动加载数据 CommandLineRunner
- spring boot调用spring自带定时任务
- 使用jQuery页面加载函数启动定时任务
- Quartz.net 2.x 学习笔记03-使用反射加载定时任务
- SpringBoot 定时任务遇到的坑
- Spring boot启动加载配置信息失败
- Spring Boot定时任务的使用方法
- Spring动态对Quartz定时任务的管理,实现动态加载,停止的配置实例代码
- spring学习笔记--quartz和定时任务执行
- Spring动态对Quartz定时任务的管理,实现动态加载,停止的配置实例代码