Springboot作为目前最流行的Java web开发框架, 广泛应用互联网、金融等多个领域。日志对于服务来说十分重要,日志不仅仅是定位问题的关键,也是甩锅利器(你懂的)。springboot本身默认是console日志的输出,在大型项目中我们可能需要分日志级别,分业务类型输出到本地文件。今天我们主要讲解logback-spring.xml配置的一些用法。
日志配置
<?xml version="1.0" encoding="UTF-8"?>[%d{yyyy-MM-dd HH:mm:ss.SSS}] [%thread] %-5level %logger{50} - %msg%nERRORDENYACCEPT"> ${LOG_PATH}/%d{yyyyMMdd}/info.%i.log512MB6010GB[%d{yyyy-MM-dd HH:mm:ss.SSS}] [%thread] %-5level %logger{50} - %msg%nERRORACCEPTDENY"> ${LOG_PATH}/%d{yyyyMMdd}/error.%i.log512MB6010GB[%d{yyyy-MM-dd HH:mm:ss.SSS}] [%thread] %-5level %logger{50} - %msg%nINFOACCEPTDENY"> ${LOG_PATH}/%d{yyyyMMdd}/event.stock.%i.log1024MB180128GB%msg%n
具体用法
@Slf4j // 日志注解通用日志@RestController@RequestMapping("/logger")public class LogTestController { // 自定义 STOCK_EVENT日志 Logger stock_logger = LoggerFactory.getLogger(Constants.STOCK_EVENT_LOGGER); @JwtIgnore @GetMapping(value = "/info") @ResponseBody public CommonResult info() { stock_logger.info("LogTestController class"); // Slf4j注解, log.info("普通日志"); return CommonResult.success(); }}
启动服务,访问http://127.0.0.1:8080/api/logger/info
查看本地logs 目录多三个日志文件
日志路径在logback-spring.xml中配置
日志内容:
event.stock.0.log
LogTestController class
info.0.log
[2020-06-22 12:59:35.604] [http-nio-8080-exec-1] INFO com.hczq.asset.cta.controller.LogTestController - 普通日志
error.0.log 日志为空
小结
logback-spring.xml 配置比较灵活,只需要将文件放到 resourse 文件夹中就行,我们可以自定义配置多类似STOCK_EVENT这样的自定义日志模块,也可以通过rollingPolicy对日志采集日志块的大小和周期进行配置,非常灵活。
如果内容你喜欢,请关注我吧,Fintech 架构师。
|