springboot logback配置included及时区设置问题
在微服务里使用了logback来对日志输出进行配置,由于配置文件里有很多通用的设置,所以有必要将通用的都提取到一个公共文件里,这样所有的微服务更改配置格式的话,只需更新通用文件即可,不用每个地方都改一遍了。
如果一个logback.xml文件想在其他的项目中被引用,那么就需要用iucluded标签,将定义的appender跟logger包围起来,表示这个是可以被导入其他项目的。
下面的是通用配置文件:logback-common.xml
<?xml version="1.0" encoding="UTF-8" ?>
<included><!-- 控制台日志输出--><appender name="${CONSOLE_APPENDER}" class="ch.qos.logback.core.ConsoleAppender"><layout class="ch.qos.logback.classic.PatternLayout"><pattern>[%d{yyyy-MM-dd HH:mm:ss.SSS,GMT+8}] %-5level [%t] [%c] - %msg%n</pattern></layout></appender><!--日志文件--><appender name="${FILE_INFO_APPENDER}" class="ch.qos.logback.core.rolling.RollingFileAppender"><!--过滤--><filter class="ch.qos.logback.classic.filter.LevelFilter"><level>INFO</level><onMatch>ACCEPT</onMatch><onMismatch>DENY</onMismatch></filter><encoder><pattern>[%d{yyyy-MM-dd HH:mm:ss.SSS,GMT+8}] %-5level [%t] [%c] - %msg%n</pattern></encoder><!--滚动策略--><rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy"><!--路径--><fileNamePattern>${LOG_DIR}/${LOG_SERVICE_NAME}-info.%d.log</fileNamePattern><maxHistory>${LOG_HIS_MAX}</maxHistory>
<!-- <maxFileSize>${LOG_FILE_SIZE_MAX}</maxFileSize>--><totalSizeCap>${LOG_TOTAL_SIZE}</totalSizeCap><cleanHistoryOnStart>true</cleanHistoryOnStart></rollingPolicy></appender><appender name="${FILE_ERROR_APPENDER}" class="ch.qos.logback.core.rolling.RollingFileAppender"><!--过滤--><filter class="ch.qos.logback.classic.filter.ThresholdFilter"><level>ERROR</level></filter><encoder class="ch.qos.logback.core.encoder.LayoutWrappingEncoder"><layout class="ch.qos.logback.classic.PatternLayout"><pattern>[%d{yyyy-MM-dd HH:mm:ss.SSS,GMT+8}] %-5level [%t] [%c] - %msg%n</pattern></layout></encoder><!--滚动策略--><rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy"><!--路径--><fileNamePattern>${LOG_DIR}/${LOG_SERVICE_NAME}-error.%d.log</fileNamePattern><maxHistory>${LOG_HIS_MAX}</maxHistory>
<!-- <maxFileSize>${LOG_FILE_SIZE_MAX}</maxFileSize>--><totalSizeCap>${LOG_TOTAL_SIZE}</totalSizeCap><cleanHistoryOnStart>true</cleanHistoryOnStart></rollingPolicy></appender><springProfile name="dev"><root level="info"><appender-ref ref="${CONSOLE_APPENDER}"/><appender-ref ref="${FILE_INFO_APPENDER}"/><appender-ref ref="${FILE_ERROR_APPENDER}"/></root></springProfile><springProfile name="uat"><root level="error"><appender-ref ref="${CONSOLE_APPENDER}"/><appender-ref ref="${FILE_INFO_APPENDER}"/><appender-ref ref="${FILE_ERROR_APPENDER}"/></root></springProfile>
</included>
下面的是每个微服务自己的配置文件:logback-spring.xml
<?xml version="1.0" encoding="UTF-8" ?>
<configuration><!--微服务名的简称--><property scope="local" name="LOG_SERVICE_NAME" value="demo" /><!--日志存储目录--><property scope="local" name="LOG_DIR" value="/data/log" /><!--保留多少天的日志--><property scope="local" name="LOG_HIS_MAX" value="10" /><property scope="local" name="LOG_TOTAL_SIZE" value="2GB" /><property scope="local" name="CONSOLE_APPENDER" value="consoleLog" /><property scope="local" name="FILE_INFO_APPENDER" value="fileInfoLog" /><property scope="local" name="FILE_ERROR_APPENDER" value="fileErrorLog" /><include resource="logback-common.xml"/>
</configuration>
在测试过程中出现了一个问题,就是控制台输出的日志时间是正常的,但在日志文件里输出的日志时间和实际时间相差了8个小时,判断是logback的配置文件还需要加上时区,如下:
<pattern>[%d{yyyy-MM-dd HH:mm:ss.SSS,GMT+8}] %-5level [%t] [%c] - %msg%n</pattern>
在时间格式后面增加了 GMT+8,表示输出的日志时区设定为东8区,即北京时间。
经过测试发现问题解决,文件里显示的也是实际时间了。
springboot logback配置included及时区设置问题相关推荐
- 记录druid整合springboot+logback配置打印sql日志
[记录druid整合springboot+logback配置打印sql日志] 整合记录 整合记录 首先看 druid 的LogFilter 为我们准备的四种logger类型 这些logger分别对应打 ...
- SpringBoot默认日志logback配置解析
SpringBoot默认日志logback配置解析 前言 今天来介绍下Spring Boot如何配置日志logback,我刚学习的时候,是带着下面几个问题来查资料的,你呢 如何引入日志? 日志输出格式 ...
- Springboot日志配置探索(主要看logback)(二)
这篇博客主要是讲在Springboot中扩展的日志框架的配置,也是主要讲logback 8 继续看文档,这里讲到: springboot里面还有几个日志系统框架可以选择使用,你可以通过在classpa ...
- springboot mysql时区设置_java/springboot/mysql时区问题解决方案
解决步骤: 先理清楚逻辑 数据从mysql查出-->进入docker(没容器化跳过)-->进入相应的应用程序(比如java或者框架springboot之类的)-->程序处理完输出返回 ...
- 怎么把php的时区配置为本地,PHP本地时区设置
php.ini中: [Date] ; Defines the default timezone used by the date functions ;date.timezone = php5中php ...
- SpringBoot的配置详解application
SpringBoot的配置文件application有两种文件格式,两种配置的内容是一致的,只是格式不一致. 1.application.properties 2.application.yml或者a ...
- Java教程:SpringBoot常用配置
在Java开发过程中我们会需要使用到一些SpringBoot的设置功能,下面小千就来教大家如何去修改这些常用的配置. 一.修改端口号和访问路径 在Spring Boot 项目中会使用一个全局的配置文件 ...
- springboot 常用配置之多环境配置(开发环境、测试环境、生产环境等)
在上一课中我们通过idea工具没有做任何配置就构建了一个springboot项目,并且已经成功启动了,但我们都很清楚这些都远远不能达到我们实际项目的需求,比如我们要引入我们自己的redis配置.mys ...
- SpringBoot如何配置log4j输出日志呢?
转自: SpringBoot如何配置log4j输出日志呢? 下文笔者讲述SpringBoot配置log4j的方法分享,如下所示 SpringBoot日志输出 springboot框架中默认使用logb ...
最新文章
- FuzzyCMeans算法
- 设计模式(35)-----设计模式阶段性总结(一句话概括一个模式)
- Python--day64--内容回顾
- windows7下面sublime中使用virtualenv切换python版本并运行
- 为什么分布式数据库中不使用uuid作为主键?
- C语言游戏开发闪屏解决办法--双缓冲技术
- 值班 查看及重启系统
- 英语高考听力测试软件,高考英语听力训练app
- js设计模式之发布订阅者模式
- 注册99美元苹果开发帐号
- vue.js 密码加密_几种常见的密码简介
- Fedora 9在用VMware 5.5、6.5虚拟机安装和硬盘安装中遇见的几点问题
- java jsoup jar包_jsoup jar包
- 设计模式-状态模式练习
- 计算机毕业设计java毕设项目之二手交易微信小程序
- c语言编辑数学公式,用C语言编个公式数学公式求助
- java支持哪三种注释方式,震撼来袭免费下载!
- train_test_split 函数
- 戴尔刀片服务器型号,戴尔 PowerEdge M640 刀片式服务器:服务器 | Dell 中国大陆
- 过滤HTML标签java工具类