您现在的位置是:亿华云 > 域名
logback 日志输出格式
亿华云2025-10-09 01:29:41【域名】0人已围观
简介前言日志对一个系统的重要性不言而喻;日志通常是在排查问题时给人看,一个友好的输出样式让人看到后赏心悦目,排查效率通常也会随之提高;下面为大家共享一下通过设置logback日志输出格式,打印出令人欣喜的
前言
日志对一个系统的志输重要性不言而喻;日志通常是在排查问题时给人看,一个友好的出格输出样式让人看到后赏心悦目,排查效率通常也会随之提高;下面为大家共享一下通过设置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、这个小小的改变,使得在排查程序时更加的赏心悦目,心情上的开心将在无形中增加排错的效率。
高防服务器很赞哦!(63159)
相关文章
- 打开https://www.aizhan.com/输入自己想要查询的域名然后按回车键,如果做过网站都会有数据显示出来
- PostgreSQL长事务与失效的索引查询浅析介绍
- 提升您的烹饪事业:为什么每位厨师都需要一个带有.cyou域名的网站?
- Go Slice 里面放 Struct,应该使用指针吗?
- 前面这两个步骤都是在本机完成的。到这里还没有涉及真正的域名解析服务器,如果在本机中仍然无法完成域名的解析,就会真正请求域名服务器来解析这个域名了。
- 一篇读懂分布式数据库的健康评估
- 写点规范的 Go 代码,你学会了吗?
- DB2 9的九大新特性
- 为了避免将来给我们的个人站长带来的麻烦,在选择域名后缀时,我们的站长最好省略不稳定的后缀域名,比如n,因为我们不知道策略什么时候会改变,更不用说我们将来是否还能控制这个域名了。因此,如果站长不是企业,或者有选择的话,如果不能选择域名的cn类,最好不要选择它。
- 为什么要开发 Go 这门新语言?