5.2使用日志特性

日志记录功能对于开发和测试应用程序和部署MySQL Router非常方便。要使用日志记录,请启用日志记录水平选项在配置文件中名为(日志).例如:

[logger] level = INFO

方法设置日志文件的位置logging_folder选项下的目录路径(默认)节。日志文件命名mysqlrouter.log.例如:

[DEFAULT] #日志发送到/path/to/folder/mysqlrouter.log logging_folder = /path/to/folder [logger] level = DEBUG

设置logging_folder到空字符串将日志发送到控制台(stdout)。

两个常见的日志级别是信息(默认),调试

  • 信息:包括如上所示的信息,是默认模式

  • 调试:包括在路由器的源代码中生成的用于诊断的消息。的调试mode显示了路由器内部工作的详细信息。的使用可能对应用程序不感兴趣调试mode在遇到问题或路由器没有按照预期运行时可能会有帮助。

控件的消息的样子如下所示调试日志级别;比较信息而且调试消息:

日志含义2019-04-07 18:25:56 INFO [0x700009673000] Connected with metadata server running on 127.0.1.0:3310 19-04-07 18:25:56 DEBUG [0x700009673000] Updating metadata information for cluster 'devCluster' update metadata for 'default' DEBUG [0x700009673000] Updating replicset status from GR for 'default'2019-04-07 18:25:56 INFO [0x700009673000] Changes detected in cluster 'devCluster' after metadata refresh

日志轮转

路由器支持日志旋转;这里列出的是带有示例实现的场景。

请注意

Windows上不支持此功能。

旋转对需求

按需旋转日志可以通过两个步骤完成:重命名日志文件,然后通知Router,以便它创建并切换到一个新的日志文件。

直接从系统的shell执行日志旋转,或者从可以作为计划任务自动调用的脚本执行日志旋转。例如:

Sudo mv /var/log/mysqlrouter/mysqlrouter.log /var/log/mysqlrouter/mysqlrouter.log。old kill -HUP $(pidof mysqlrouter)

logrotate

logrotate机制也可以旋转路由器的日志文件。旋转后,将通知Router重新打开日志文件,这是通过向Router进程发送HUP来完成的。logrotate配置文件示例:

/var/log/mysqlrouter/mysqlrouter.log {rotate 9 size 10M create 0755 mysqlrouter mysqlrouter postrotate kill -HUP $(pidof mysqlrouter) endscript}

该示例将日志旋转为mysqlrouter.log、mysqlrouter.log。1,…, mysqlrouter.log.9。只有当当前mysqlrouter.log文件的大小大于10MB时,才会触发旋转。假设此配置保存为/etc/mysqlrouter / logrotate.conf,它可能会定期执行(添加到cron中),如下所示:

(sudo) logrotate /etc/mysqlrouter / logrotate.conf