logback 日志输出格式

强烈推荐一个大神的人工智能的教程:http://www.captainbed.net/zhanghan
【前言】日志对一个系统的重要性不言而喻;日志通常是在排查问题时给人看 , 一个友好的输出样式让人看到后赏心悦目 , 排查效率通常也会随之提高;下面为大家共享一下通过设置logback日志输出格式 , 打印出令人欣喜的日志样式 。
【搞一下日志格式】一、未指定日志格式 , 日志输出
1、代码实现
(1)演示日志输出控制器
/* * Copyright (c) 2019. zhanghan_JAVA@163.com All Rights Reserved. * 项目名称:实战SpringBoot * 类名称:CheckMobileController.java * 创建人:张晗 * 联系方式:zhanghan_java@163.com * 开源地址: https://github.com/dangnianchuntian/springboot * 博客地址: https://zhanghan.blog.csdn.net */package com.zhanghan.zhboot.controller;import com.MySQL.jdbc.StringUtils;import com.zhanghan.zhboot.controller.request.MobileCheckRequest;import com.zhanghan.zhboot.properties.MobilePreFixProperties;import com.zhanghan.zhboot.util.wrApper.WrapMapper;import com.zhanghan.zhboot.util.wrapper.Wrapper;import io.swagger.annotations.Api;import io.swagger.annotations.ApiOperation;import org.slf4j.Logger;import org.slf4j.LoggerFactory;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.validation.annotation.Validated;import org.springframework.web.bind.annotation.RequestBody;import org.springframework.web.bind.annotation.RequestMapping;import org.springframework.web.bind.annotation.RequestMethod;import org.springframework.web.bind.annotation.RestController;import java.util.HashMap;import java.util.Map;@RestController@Api(value = https://www.isolves.com/it/wlyx/fwq/2020-10-09/"校验手机号控制器", tags = {"校验手机号控制器"})public class CheckMobileController {private static Logger logger = LoggerFactory.getLogger(CheckMobileController.class);@Autowiredprivate MobilePreFixProperties mobilePreFixProperties;@ApiOperation(value = "优雅校验手机号格式方式", tags = {"校验手机号控制器"})@RequestMapping(value = "/good/check/mobile", method = RequestMethod.POST)public Wrapper goodCheckMobile(@RequestBody @Validated MobileCheckRequest mobileCheckRequest) {logger.info("good check mobile param {}", mobileCheckRequest.toString());String countryCode = mobileCheckRequest.getCountryCode();String proFix = mobilePreFixProperties.getPrefixs().get(countryCode);if (StringUtils.isNullOrEmpty(proFix)) {logger.error("good check mobile param is error; param is {}, profix is {}", mobileCheckRequest.toString(), proFix);return WrapMapper.error("参数错误");}String mobile = mobileCheckRequest.getMobile();Boolean isLegal = false;if (mobile.startsWith(proFix)) {isLegal = true;}Map map = new HashMap();map.put("mobile", mobile);map.put("isLegal", isLegal);map.put("proFix", proFix);return WrapMapper.ok(map);}@ApiOperation(value = "扩展性差校验手机号格式方式", tags = {"校验手机号控制器"})@RequestMapping(value = "/bad/check/mobile", method = RequestMethod.POST)public Wrapper badCheckMobile(@RequestBody MobileCheckRequest mobileCheckRequest) {logger.info("bad check mobile param {}", mobileCheckRequest.toString());String countryCode = mobileCheckRequest.getCountryCode();String proFix = "";if (countryCode.equals("CN")) {proFix = "86";} else if (countryCode.equals("US")) {proFix = "1";} else {logger.error("bad check mobile param is error; param is {}, profix is {}", mobileCheckRequest.toString(), proFix);return WrapMapper.error("参数错误");}String mobile = mobileCheckRequest.getMobile();Boolean isLegal = false;if (mobile.startsWith(proFix)) {isLegal = true;}Map map = new HashMap();map.put("mobile", mobile);map.put("isLegal", isLegal);map.put("proFix", proFix);return WrapMapper.ok(map);}}2、项目部署服务器后访问打印日志的效果

logback 日志输出格式

文章插图
 
【logback 日志输出格式】 
二、指定日志格式 , 日志输出
1、代码实现
(1)演示日志输出控制器(同上)
(2)在项目的resources目录下增加logback.xml设置打印格式 , logback.xml内容如下:
<?xml version="1.0" encoding="UTF-8"?><!-- 说明: 1、日志级别及文件 日志记录采用分级记录 , 级别与日志文件名相对应 , 不同级别的日志信息记录到不同的日志文件中 例如:error级别记录到log_error_xxx.log或log_error.log(该文件为当前记录的日志文件) , 而log_error_xxx.log为归档日志 ,  日志文件按日期记录 , 同一天内 , 若日志文件大小等于或大于2M , 则按0、1、2...顺序分别命名 例如log-level-2013-12-21.0.log 其它级别的日志也是如此 。2、文件路径 若开发、测试用 , 在Eclipse中运行项目 , 则到Eclipse的安装路径查找logs文件夹 , 以相对路径../logs 。若部署到Tomcat下 , 则在Tomcat下的logs文件中 3、Appender FILEERROR对应error级别 , 文件名以log-error-xxx.log形式命名 FILEWARN对应warn级别 , 文件名以log-warn-xxx.log形式命名 FILEINFO对应info级别 , 文件名以log-info-xxx.log形式命名 FILEDEBUG对应debug级别 , 文件名以log-debug-xxx.log形式命名 stdout将日志信息输出到控制上 , 为方便开发测试使用 --><configuration><springProperty scope="context" name="LOG_HOME" source="spring.application.name"/><springProfile name="local"><property name="LOG_PATH" value=https://www.isolves.com/it/wlyx/fwq/2020-10-09/"D:/www/logs/common"/>


推荐阅读