logback.xml文件中%d参数输出到graylog中的时间少了8小时

来源:14-4 springboot集成graylog(下)

网络时空

2020-04-09

师兄,下午好!

我在graylog中察看eureka的输出日志时,发现logback.xml文件中输出到graylog中的时间都少了8个小时,而graylog自身输出的时间戳 和 eureka在 rancher中输出的时间戳都是正确的,和我本地主机的时间完全一致,就是logback.xml文件中%d参数输出到graylog的时间比当前时间少了8个小时。
(具体可以察看下面两个附件说明)

和你视频中讲的graylog自身的时间戳不对少了8个小时的情况不一样,你当时视频中的处理方式,是用administrator用户重新登录一下来解决的。

我现在察看graylog对应的容器的date -R时区和rancher-server及 rancher-agent两台主机的 date -R时区 都是正常的,不是 utc, 是北京时区。

请问我这种情况,我该如何处理呢? 就是说 logback.xml文件中%d参数输出到graylog的时间都比我实际时间少了8个小时。

如下是我本地eureka项目对应的logback.xml文件的具体配置内容

<appender name="consoleLog" class="ch.qos.logback.core.ConsoleAppender">
    <layout class="ch.qos.logback.classic.PatternLayout">
        <pattern>
            %d - %msg%n
        </pattern>
    </layout>
</appender>

<appender name="GELF" class="de.siegmar.logbackgelf.GelfUdpAppender">
    <graylogHost>192.168.16.44</graylogHost>
    <graylogPort>12201</graylogPort>
    <maxChunkSize>508</maxChunkSize>
    <useCompression>true</useCompression>
    <encoder class="de.siegmar.logbackgelf.GelfEncoder">
        <includeRawMessage>false</includeRawMessage>
        <includeMarker>true</includeMarker>
        <includeMdcData>true</includeMdcData>
        <includeCallerData>false</includeCallerData>
        <includeRootCauseData>false</includeRootCauseData>
        <includeLevelName>true</includeLevelName>
        <shortPatternLayout class="ch.qos.logback.classic.PatternLayout">
            <pattern>%d - %m%nopex</pattern>
        </shortPatternLayout>
        <fullPatternLayout class="ch.qos.logback.classic.PatternLayout">
            <pattern>%d - %m%n</pattern>
        </fullPatternLayout>
        <staticField>app_name:eureka</staticField>
        <staticField>os_arch:${os.arch}</staticField>
        <staticField>os_name:${os.name}</staticField>
        <staticField>os_version:${os.version}</staticField>
    </encoder>
</appender>

<root level="info">
    <appender-ref ref="consoleLog" />
    <appender-ref ref="GELF" />
</root>
![图片描述](http://img.mukewang.com/szimg/5e8ee98d09e64aff08150598.jpg)

图片描述

图片描述

写回答

3回答

网络时空

提问者

2020-04-21

感谢师兄哈,问题已经解决了,在Dockerfile文件中设计shanghai时区,显示就正常了

0
1
廖师兄助理
很不错,同学你又变强了
2020-04-21
共1条回复

网络时空

提问者

2020-04-11

目前这个实战课程,所有内容我都操作了一遍,目前就还有这个问题未解决。我用的所有镜像文件都是参考你的内容生成的镜像文件。

我在网上查了下,有人说,这是机器时间默认为utc,utc和cst相差8个小时,uct+8=cst,从上面显示来看确实是这样

有网上如下介绍 (附件是我虚拟机上timedatectl运行显示结果)


      Local time: Fri 2018-07-27 00:54:04 CST    本地时间为CST
  Universal time: Thu 2018-07-26 16:54:04 UTC    UTC时间
        RTC time: Thu 2018-07-26 16:54:04        硬件时间默认使用UTC时间
       Time zone: Asia/Shanghai (CST, +0800)
     NTP enabled: yes
NTP synchronized: no
 RTC in local TZ: no
      DST active: n/a

//img.mukewang.com/szimg/5e916b4d099cf71106210293.jpg



网上介绍的解决方法如下(不过,我试了下,还是未能解决)

1 确认时区是否为shanghai

[root@xxx ~]# ll /etc/localtime
lrwxrwxrwx 1 root root 35 Jul 27  2018 /etc/localtime -> ../usr/share/zoneinfo/Asia/Shanghai

如果不正确,手动修改时区:
[root@xxx ~]# timedatectl set-timezone Asia/Shanghai
或者:
[root@xxx ~]# ln -sf /usr/share/zoneinfo/Universal /etc/localtime


2 检查本地时间与硬件时间

[root@xxx ~]# timedatectl
      Local time: Fri 2018-07-27 00:54:04 CST    本地时间为CST
  Universal time: Thu 2018-07-26 16:54:04 UTC    UTC时间
        RTC time: Thu 2018-07-26 16:54:04        硬件时间默认使用UTC时间
       Time zone: Asia/Shanghai (CST, +0800)
     NTP enabled: yes
NTP synchronized: no
 RTC in local TZ: no
      DST active: n/a

3 修改本地时间

[root@xxx ~]# date -s '-8hour'
Thu Jul 26 16:54:30 CST 2018

4 将本地时间写入硬件时间并重新检查

[root@xxx ~]# hwclock -w
[root@xxx ~]# timedatectl
      Local time: Thu 2018-07-26 16:55:11 CST
  Universal time: Thu 2018-07-26 08:55:11 UTC
        RTC time: Thu 2018-07-26 08:55:11
       Time zone: Asia/Shanghai (CST, +0800)
     NTP enabled: yes
NTP synchronized: no
 RTC in local TZ: no
      DST active: n/a

--------------------------------------------------

UTC(Universal Time/Temps Cordonné 世界标度准知时间道)
CST(Central Standard Time 国家标准时间,一说中原标准时间);
中国标准时间(China Standard Time)
GMT + 8 = UTC + 8 = CST

0
0

廖师兄

2020-04-10

你这里面错误的时间,是日志的文本内容。说你Java项目打印出来就是不对的,肯定是java所在的运行环境时间不对。你用的是我给的docker镜像吗

0
3
网络时空
回复
廖师兄助理
好的,我到时再试下,谢了
2020-04-17
共3条回复

SpringCloud Finchley(M2+RELEASE+SR2)微服务实战

SpringCloud组件实现微服务,【已升级Finchley.Release】

5668 学习 · 2489 问题

查看课程