logback日志输出格式

前言

创新互联成立于2013年,先为长子等服务建站,长子等地企业,进行企业商务咨询服务。为长子企业网站制作PC+手机+微官网三网同步一站式服务解决您的所有建站问题。

日志对一个系统的重要性不言而喻;日志通常是在排查问题时给人看,一个友好的输出样式让人看到后赏心悦目,排查效率通常也会随之提高;下面为大家共享一下通过设置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 = "校验手机号控制器", tags = {"校验手机号控制器"})

public class CheckMobileController {

private static Logger logger = LoggerFactory.getLogger(CheckMobileController.class);

@Autowired

private 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 { 无锡看妇科的医院 http://www.ytsgfk120.com/

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、项目部署服务器后访问打印日志的效果

二、指定日志格式,日志输出

1、代码实现

(1)演示日志输出控制器(同上)

(2)在项目的resources目录下增加logback.xml设置打印格式,logback.xml内容如下:

%d{yyyy-MM-dd HH:mm:ss} %highlight(%-5level) %green([${LOG_HOME},%X{X-B3-TraceId:-},%X{X-B3-SpanId:-},%X{X-Span-Export:-}]) %magenta(${PID:-}) %white(---) %-20(%yellow([%20.20thread])) %-55(%cyan(%.32logger{30}:%L)) %highlight(- %msg%n)

UTF-8

${LOG_PATH}/${appName}-log-console-%d{yyyy-MM-dd}.%i.log.zip

${maxSaveDays}

${maxFileSize}

%d{yyyy-MM-dd HH:mm:ss} %highlight(%-5level) %green([${LOG_HOME},%X{X-B3-TraceId:-},%X{X-B3-SpanId:-},%X{X-Span-Export:-}]) %magenta(${PID:-}) %white(---) %-20(%yellow([%20.20thread])) %-55(%cyan(%.32logger{30}:%L)) %highlight(- %msg%n)

UTF-8

${LOG_PATH}/${appName}-log-info-%d{yyyy-MM-dd}.%i.log.zip

${maxSaveDays}

${maxFileSize}

%d{"yyyy-MM-dd HH:mm:ss,SSS"}[%X{userId}|%X{sessionId}][%p][%c{0}-%M]-%m%n

UTF-8

ERROR

DENY

ACCEPT

${LOG_PATH}/${appName}-log-error-%d{yyyy-MM-dd}.%i.log.zip

${maxSaveDays}

${maxFileSize}

%d{"yyyy-MM-dd HH:mm:ss,SSS"}[%X{userId}|%X{sessionId}][%p][%c{0}-%M]-%m%n

UTF-8

ERROR

ACCEPT

DENY

level="INFO"/>

3、项目部署服务器后访问打印日志的效果

4、查看日志记录文件,效果也一样,效果图:

三、项目地址

1、地址:https://github.com/dangnianchuntian/springboot

2、代码版本:1.5.0-Release

【总结】

1、通过设定日志格式,输出的样式更加人性化,错误也更加明显;

2、这个小小的改变,使得在排查程序时更加的赏心悦目,心情上的开心将在无形中增加排错的效率。

分享题目:logback日志输出格式
本文链接:https://www.cdcxhl.com/article4/pdhdie.html

成都网站建设公司_创新互联,为您提供建站公司网站营销企业网站制作品牌网站设计用户体验企业建站

广告

声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联

商城网站建设