#运行日志

YCS提供运行日志用于所在服务器的监控和分析,日志文件位于YCS的HOME目录下的/log/run文件夹中,路径及名称不可修改。

运行日志通过日志级别控制记录开关和记录策略,级别为OFF时不记录运行日志。

# 设置日志文件保留个数

通过设置LOG_NUMBER参数修改运行日志的保留个数,当达到该参数设置的值(默认10)时,系统会自动删除时间靠前的日志。

取值范围/格式:[2,10000]

日志文件保留个数修改指令:

$ ycsctl set log_number 10

查看当前日志文件保留个数的命令如下:

$ ycsctl get log_number
YCS LOG_NUMBER = 10

可进入日志文件存放位置观察文件的保留数量:

$ ls -l $YASCS_HOME/log/run
total 1168
-rw-r----- 1 yashan yashan 1193430 Jul 19 10:09 run.log

# 设置日志文件最大大小

通过设置LOG_SIZE参数修改运行日志的最大大小,当达到该参数设置的值(默认20M)时,该日志文件会自动归档。

取值范围/格式:[1M,4G]

日志的最大大小修改指令:

$ ycsctl set log_size 20M

查看当前日志的最大大小的命令如下:

$ ycsctl get log_size
YCS LOG_SIZE = 20MB

# 运行日志级别管理

运行级别为OFF时不记录运行日志。

其他运行日志级别的排序为:

ERROR < WARN < INFO < DEBUG < TRACE < ALL

从左到右,日志等级依次增高,高日志级别包含低日志级别。

查看当前运行日志级别的命令如下:

$ ycsctl get log_level
YCS LOG_LEVEL = DEBUG

通过修改LOG_LEVEL参数(重启生效),或者执行如下命令(立即生效)修改运行日志级别:

$ ycsctl set log_level info

$ ycsctl get log_level
YCS LOG_LEVEL = info

# ERROR级别

共享集群实例产生了可处理的关键错误时,将输出ERROR日志。这些错误一般无法返回给客户端,例如后台线程的产生的错误。

将日志级别设置为ERROR的指令如下:

ycsctl set LOG_LEVEL "ERROR"

示例

//当YCS因为服务器断连,处理消息失败时,run.log打印情况如下:
2023-07-05 18:49:49.331 4334 [ERROR][errno=00406]: [YCS] failed to process yascs client message: connection is closed

# INFO级别

共享集群实例默认使用的日志级别为INFO。

INFO级别记录共享集群实例正常运行中发生的关键事件,主要包括:

  • 共享集群实例状态变更:例如启动、关闭、升主降备。

  • 共享集群执行工具运维操作:例如工具的启动和结束。

  • 共享集群关键活动:例如拓扑状态变化等。

  • 共享集群参数变化:修改系统配置参数等。

将日志级别设置为INFO的指令如下:

ycsctl set LOG_LEVEL "INFO"

示例

//共享集群拓扑状态变化,run.log打印情况如下:
2023-06-27 15:54:41.207 129728 [INFO] Topo ver:1, config ver:6, age:163, self node id:0, cluster master id:0, yasfs master id:255, yasdb master id:255, active node count:1
2023-06-27 15:54:41.207 129728 [INFO] Node 0: online  yasfs: offline yasdb: offline  yasdb inter url:
2023-06-27 15:54:41.207 129728 [INFO] Node 1: offline yasfs: offline yasdb: offline  yasdb inter url:
2023-06-27 15:54:41.207 129728 [INFO] Node 2: offline yasfs: offline yasdb: offline  yasdb inter url:
2023-06-27 15:54:41.207 129728 [INFO] Node 3: offline yasfs: offline yasdb: offline  yasdb inter url:
2023-06-27 15:54:41.208 129728 [INFO] begin to start all resources
2023-06-27 15:54:41.208 129728 [INFO] Topo ver:2, config ver:6, age:163, self node id:0, cluster master id:0, yasfs master id:0, yasdb master id:0, active node count:1
2023-06-27 15:54:41.208 129728 [INFO] Node 0: online  yasfs: offline yasdb: offline  yasdb inter url:
2023-06-27 15:54:41.208 129728 [INFO] Node 1: offline yasfs: offline yasdb: offline  yasdb inter url: 
2023-06-27 15:54:41.209 129728 [INFO] Node 2: offline yasfs: offline yasdb: offline  yasdb inter url: 
2023-06-27 15:54:41.209 129728 [INFO] Node 3: offline yasfs: offline yasdb: offline  yasdb inter url: 

# DEBUG级别

DEBUG级别用于打印问题追溯时可能用到的关键信息。

将日志级别设置为DEBUG的指令如下:

ycsctl set LOG_LEVEL "DEBUG"

示例

//当最后一个共享集群实例停止时,放弃switch over,run.log打印如下:
2023-06-30 15:21:07.028 91394 [DEBUG] Self is last node, quit without switch over
2023-06-30 15:21:07.028 91394 [DEBUG] Stop inspect, exception triggered will not be processed any more.
2023-06-30 15:21:07.028 91394 [DEBUG] Try close all channels

# ALL级别

ALL级别记录所有日志信息,是最高级别的日志级别模式。

将日志级别设置为ALL的指令如下:

ycsctl set LOG_LEVEL "ALL"