KingbaseES软件安装完成后,日志是默认记录到 data/sys_log 目录下的。但是这些日志默认是不会定期删除的,而且格式也不一定是你想要的样子。所以设置好相关的参数是很有必要的。
主要的日志相关参数
-
logging_collector : 日志记录开关。默认打开,建议保持打开。
-
log_directory : 日志路径。默认 sys_log ,这是一个针对 data 目录的相对路径。
-
log_duration : 记录 SQL 执行时间。
-
log_lock_waits : 记录死锁信息。
-
log_checkpoints : 记录检查点信息。
-
log_connections : 记录会话连接信息。
-
log_disconnections : 记录会话断开信息。
-
lc_messages : 可以设置日志使用的语言。
常用的设置有中文
lc_messages=‘zh_CN.UTF-8’
英文
lc_messages=‘en_US.UTF-8’ -
log_destination : 日志记录类型。可选值有:‘stderr’,‘csvlog’,‘syslog’,Windows平台还支持’eventlog’。
-
log_statement : 打印的 SQL 类型。可选值有:‘none’(不记录),‘ddl’(记录 DDL),‘mod’(记录DDL加INSERT,UPDATE),‘all’(记录所有)。通常情况下配置为’none’。
-
log_min_duration_statement : 记录超过指定时间的慢 SQL ,单位为毫秒。
-
log_filename : 日志文件名格式。默认 kingbase-%Y-%m-%d_%H%M%S.log ,通常保持默认即可。
-
log_rotation_age : 日志文件的替换周期。
-
log_rotation_size : 单个日志文件的大小,超过该大小换一个文件继续记录。
-
log_truncate_on_rotation : 当生成新的文件时,文件名已存在,是否覆盖同名旧文件。
-
log_line_prefix : 日志前缀。可以通过一些通配符自定义每一行日志记录哪些信息。详细的通配符含义参见下表。
推荐配置
log_line_prefix=’%t [%p]: [%l-1] user=%u,db=%d,client=%h’
log_line_prefix 常用通配符
符号 | 作用 |
---|---|
%a | 应用名 |
%u | 用户名 |
%d | 数据库名 |
%r | 远程主机名或IP地址,以及远程端口 |
%h | 远程主机名或IP地址 |
%p | 进程ID |
%t | 无毫秒的时间戳 |
%m | 带毫秒的时间戳 |
%i | 命令标签:会话当前命令的类型 |
%e | SQLSTATE 错误代码 |
%c | 会话ID |
%l | 日志行号,从1开始 |
%s | 进程开始的时间戳 |
%v | 虚拟事务ID |
%x | 事务ID |
推荐的设置
金仓的 Kingbase ES 在初始化完成后以及有一些默认的设置,能够满足基本的需求。
但是建议在后面追加一些配置,增加一些信息,同时使得日志更加便于阅读。
lc_messages='zh_CN.UTF-8'
log_line_prefix='%t [%p]: [%l-1] user=%u,db=%d,client=%h '
log_statement = 'none'
log_duration=off
log_min_duration_statement=5000
log_destination='stderr'
log_checkpoints=on
log_lock_waits=on