澳门新萄京:分割访问日志,新增配置
分类:数据库

1.log_timestamps

澳门新萄京 1

最近测试MySQL 5.7.21  Community Server这个版本的MySQL数据库时,发现其错误日志的时间跟系统当前时间不一致,后面检查发现日期时间格式都是UTC时间,查了一下相关资料,原来在MySQL 5.7.2 之后日志文件里面的时间戳从默认的本地系统时区改为了UTC格式。MySQL 5.7.2多了一个参数log_timestamps ,这个参数主要是控制错误日志、慢查询日志等日志中的显示时间。但它不会影响查询日志和慢日志写到表 (mysql.general_log, mysql.slow_log) 中的显示时间。在查询记录的时候,可以使用 CONVERT_TZ() 函数,或者设置会话级别的系统变量 time_zone 来转换成所需要的时区。官方资料详细介绍如下所示:

httpd.conf中CustomLog logs/access.log common 改成
CustomLog "|c:/apache/bin/rotatelogs.exe c:/apache/logs/access_%Y_%m_%d.log 86400" common
其中把c:改成你安装apache所在的路径.
重启Apache

在5.7.2以后的版本中增加一个单独控制error log , general log,slow log的记录的时间,默认是UTC,需要配置成SYSTEM(本地时间)否则用的是UTC的时间。

JavaScript的Date对象

 

其中c:/apache/是你安装apache的路径这样每一天生成一个日志文件

log_timestamps=SYSTEM;

Date对象

This variable controls the time zone of timestamps in messages written to the error log, and in general query log and slow query log messages written to files. It does not affect the time zone of general query log and slow query log messages written to tables(mysql.general_log, mysql.slow_log). Rows retrieved from those tables can be converted from the local system time zone to any desired time zone with CONVERT_TZ() or by setting the session time_zone system variable.

  • 在apache的配置文件中找到
    ErrorLog logs/error_log
    CustomLog logs/access_log common

    Linux系统配置方法:

    将其改为
    ErrorLog "| /usr/local/apache/bin/rotatelogs /home/logs/www/%Y_%m_%d_error_log 86400 480"
    CustomLog "| /usr/local/apache/bin/rotatelogs /home/logs/www/%Y_%m_%d_access_log 86400 480" common

    Windows系统下配置方法:

    #ErrorLog "|bin/rotatelogs.exe logs/vicp_net_error-%y%m%d.log 86400 480"
    #CustomLog "|bin/rotatelogs.exe logs/vicp_net_access-%y%m%d.log 86400 480" common

    第一次不知道设置480这个参数,导致日志记录时间和服务器时间相差8小时,原来是rotatelogs有一个offset参数,表示相对于UTC的时差分钟数,中国是第八时区,相差480分钟。86400是表示1天。

    附rotatelogs说明

    rotatelogs logfile [ rotationtime [ offset ]] | [ filesizeM ]

    选项
    logfile
    它加上基准名就是日志文件名。如果logfile中包含’%',则它会被视为用于的strftime(3)的格式字串;否则,它会被自动加上以秒为单位的.nnnnnnnnnn后缀。这两种格式都表示新的日志开始使用的时间。
    rotationtime
    日志文件回卷的以秒为单位的间隔时间
    offset
    相对于UTC的时差的分钟数。如果省略,则假定为0,并使用UTC时间。比如,要指定UTC时差为-5小时的地区的当地时间,则此参数应为-300。
    filesizeM
    指定回卷时以兆字节为单位的后缀字母M的文件大小,而不是指定回卷时间或时差。


    httpd.conf中CustomLog logs/access.log common 改成

    CustomLog "|c:/apache/bin/rotatelogs.exe c:/apache/logs/access_%Y_%m_%d.log 86400" common

    其中把c:改成你安装apache所在的路径.

    重启Apache

    其中c:/apache/是你安装apache的路径这样每一天生成一个日志文件

 

Date对象:用于设置和获取当前的时间。

Permitted log_timestamps values are UTC (the default) and SYSTEM (local system time zone).

Date对象方法分为两种:

一种使用本地时间;
一种使用世界时间UTC(即方法中有“UTC”),则代表世界时间;(以0度经线为准)。

获取系统的当前时间:

var time = new Date();
console.log(time);

获取具体时间(get)

所有的get方法都具备UTC获取,除了getYear()澳门新萄京:分割访问日志,新增配置。getTimes()以外

Timestamps are written using ISO 8601 / RFC 3339 format: YYYY-MM-DDThh:mm:ss.uuuuuu plus a tail value of Z signifying Zulu time (UTC) or ±hh:mm (an offset from UTC).

时间的获取(UTC为世界时间):

get[UTC]FullYear( )——获取年份;
get[UTC]Month( )——获取月份;
get[UTC]Date( )——获取日期;
get[UTC]Day( )——获取星期;
get[UTC]Hours( )——获取小时;
get[UTC]Minutes( )——获取分钟;
get[UTC]Seconds( )——获取秒数;
get[UTC]Milliseconds( )——获取毫秒;
getTime( ):返回Date对象的内部毫秒,这个值没有“UTC”方法;
getTimezoneOffset():返回当前日期的本地表示与UTC表示之间的时间差的值;
getYear( ):返回Date对象的年份值,建议使用get[UTC]FullYear()。

设置具体时间(set)

This variable was added in MySQL 5.7.2. Before 5.7.2, timestamps in log messages were written using the local system time zone by default, not UTC. If you want the previous log message time zone default, set log_timestamps=SYSTEM.

时间的设置(UTC为世界时间):

set[UTC]FullYear( )——设置年份;
set[UTC]Month( )——设置月份;
set[UTC]Date( )——设置日期;
set[UTC]Hours( )——设置小时;
set[UTC]Minutes( )——设置分钟;
set[UTC]Seconds( )——设置秒数;
set[UTC]Milliseconds( )——设置毫秒;
setTime( ):使用毫秒格式,设置一个Date对象的值;
setYear( ):设置年份值,建议使用set[UTC]FullYear()。

设置时间的三种方法

 

方法1:

var data = new Date(200000);
console.log(data);

此参数是全局的,可以动态修改,修改参数log_timestamps的值非常简单,如下所示,不过最好在参数文件my.cnf设置该参数值,以防MySQL服务重启失效。

方法2:

var data = new Date(2020, 0, 1, 8, 8, 8);
console.log(data);

 

方法3:

var data = new Date("May 1, 2017");
console.log(data);

 

mysql> show variables like 'log_timestamps';

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

| Variable_name  | Value |

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

| log_timestamps | UTC   |

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

1 row in set (0.01 sec)

 

mysql> set global log_timestamps=system;

Query OK, 0 rows affected (0.00 sec)

 

mysql> show variables like 'log_timestamps';

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

| Variable_name  | Value  |

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

| log_timestamps | SYSTEM |

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

1 row in set (0.01 sec)

 

mysql>

 

澳门新萄京 2

 

 

参考资料:

 

本文由澳门新萄京发布于数据库,转载请注明出处:澳门新萄京:分割访问日志,新增配置

上一篇:澳门新萄京SQL数据库间歇性极度,Mysql数据库的增 下一篇:没有了
猜你喜欢
热门排行
精彩图文