在微服务里使用了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及时区设置问题相关推荐

  1. 记录druid整合springboot+logback配置打印sql日志

    [记录druid整合springboot+logback配置打印sql日志] 整合记录 整合记录 首先看 druid 的LogFilter 为我们准备的四种logger类型 这些logger分别对应打 ...

  2. SpringBoot默认日志logback配置解析

    SpringBoot默认日志logback配置解析 前言 今天来介绍下Spring Boot如何配置日志logback,我刚学习的时候,是带着下面几个问题来查资料的,你呢 如何引入日志? 日志输出格式 ...

  3. Springboot日志配置探索(主要看logback)(二)

    这篇博客主要是讲在Springboot中扩展的日志框架的配置,也是主要讲logback 8 继续看文档,这里讲到: springboot里面还有几个日志系统框架可以选择使用,你可以通过在classpa ...

  4. springboot mysql时区设置_java/springboot/mysql时区问题解决方案

    解决步骤: 先理清楚逻辑 数据从mysql查出-->进入docker(没容器化跳过)-->进入相应的应用程序(比如java或者框架springboot之类的)-->程序处理完输出返回 ...

  5. 怎么把php的时区配置为本地,PHP本地时区设置

    php.ini中: [Date] ; Defines the default timezone used by the date functions ;date.timezone = php5中php ...

  6. SpringBoot的配置详解application

    SpringBoot的配置文件application有两种文件格式,两种配置的内容是一致的,只是格式不一致. 1.application.properties 2.application.yml或者a ...

  7. Java教程:SpringBoot常用配置

    在Java开发过程中我们会需要使用到一些SpringBoot的设置功能,下面小千就来教大家如何去修改这些常用的配置. 一.修改端口号和访问路径 在Spring Boot 项目中会使用一个全局的配置文件 ...

  8. springboot 常用配置之多环境配置(开发环境、测试环境、生产环境等)

    在上一课中我们通过idea工具没有做任何配置就构建了一个springboot项目,并且已经成功启动了,但我们都很清楚这些都远远不能达到我们实际项目的需求,比如我们要引入我们自己的redis配置.mys ...

  9. SpringBoot如何配置log4j输出日志呢?

    转自: SpringBoot如何配置log4j输出日志呢? 下文笔者讲述SpringBoot配置log4j的方法分享,如下所示 SpringBoot日志输出 springboot框架中默认使用logb ...

最新文章

  1. FuzzyCMeans算法
  2. 设计模式(35)-----设计模式阶段性总结(一句话概括一个模式)
  3. Python--day64--内容回顾
  4. windows7下面sublime中使用virtualenv切换python版本并运行
  5. 为什么分布式数据库中不使用uuid作为主键?
  6. C语言游戏开发闪屏解决办法--双缓冲技术
  7. 值班 查看及重启系统
  8. 英语高考听力测试软件,高考英语听力训练app
  9. js设计模式之发布订阅者模式
  10. 注册99美元苹果开发帐号
  11. vue.js 密码加密_几种常见的密码简介
  12. Fedora 9在用VMware 5.5、6.5虚拟机安装和硬盘安装中遇见的几点问题
  13. java jsoup jar包_jsoup jar包
  14. 设计模式-状态模式练习
  15. 计算机毕业设计java毕设项目之二手交易微信小程序
  16. c语言编辑数学公式,用C语言编个公式数学公式求助
  17. java支持哪三种注释方式,震撼来袭免费下载!
  18. train_test_split 函数
  19. 戴尔刀片服务器型号,戴尔 PowerEdge M640 刀片式服务器:服务器 | Dell 中国大陆
  20. 过滤HTML标签java工具类

热门文章

  1. 学习:赛博空间 Cyberspace 概念
  2. Linux常用的基本命令
  3. RGBA 转 RGB
  4. 基于tornado服务器的文件上传和下载
  5. 关于img标签中的alt和title属性作用的说明
  6. 文科生也能看懂的算法图解
  7. PhotoShop的字体安装及制作文字特效
  8. SkyWalking简介和安装
  9. 基于推荐算法的电影系统——具体实现(3)
  10. ps---融入环境调色技巧步骤-----去除扣除图的白边