记录日志的位置
log_destination
参数说明:GaussDB支持多种方法记录服务器日志,log_destination的取值为一个逗号分隔开的列表(如log_destination="stderr,csvlog")。
该参数属于SIGHUP类型参数,请参考表1中对应设置方法进行设置。
取值范围:字符串
有效值为stderr、csvlog、syslog、eventlog。
- 取值为stderr,表示日志打印到屏幕。
- 取值为csvlog,表示日志的输出格式为“逗号分隔值”即CSV (Comma Separated Value)格式。使用csvlog记录日志的前提是将logging_collector设置为on,请参见使用CSV格式写日志。
- 取值为syslog,表示通过操作系统的syslog记录日志。GaussDB使用syslog的LOCAL0 ~ LOCAL7记录日志,请参见syslog_facility。使用syslog记录日志需在操作系统后台服务配置文件中添加代码:
1
local0.* /var/log/postgresql
默认值:stderr
logging_collector
参数说明:控制开启后端日志收集进程logger进行日志收集。该进程捕获发送到stderr或csvlog的日志消息并写入日志文件。
这种记录日志的方法比将日志记录到syslog更加有效,因为某些类型的消息在syslog的输出中无法显示。例如动态链接库加载失败消息和脚本(例如archive_command)产生的错误消息。
该参数属于POSTMASTER类型参数,请参考表1中对应设置方法进行设置。
将服务器日志发送到stderr时可以不使用logging_collector参数,此时日志消息会被发送到服务器的stderr指向的空间。这种方法的缺点是日志回滚困难,只适用于较小的日志容量。
取值范围:布尔型
- on表示开启日志收集功能。
- off表示关闭日志收集功能。
默认值:on
log_directory
参数说明:logging_collector设置为on时,log_directory决定存放服务器日志文件的目录。它可以是绝对路径,或者是相对路径(相对于数据目录的路径)。log_directory支持动态修改,可以通过gs_guc reload实现,仅sysadmin用户可以访问。
该参数属于SIGHUP类型参数,请参考表1中对应设置方法进行设置。
- 当配置文件中log_directory的值为非法路径时,会导致集群无法重新启动。
- 通过gs_guc reload动态修改log_directory时,当指定路径为合法路径时,日志输出到新的路径下。当指定路径为非法路径时,日志输出到上一次合法的日志输出路径下而不影响数据库正常运行。此时即使指定的log_directory的值非法,也会写入到配置文件中。
- 在沙箱环境,路径中不可以包含/var/chroot,例如log的绝对路径是/var/chroot/var/lib/log/Ruby/pg_log/cn_log,则只需要设置为/var/lib/log/Ruby/pg_log/cn_log。
- 合法路径:用户对此路径有读写权限。
- 非法路径:用户对此路径无读写权限。
取值范围:字符串
默认值:安装时指定
log_filename
参数说明:logging_collector设置为on时,log_filename决定服务器运行日志文件的名称。通常日志文件名是按照strftime模式生成,因此可以用系统时间定义日志文件名,用%转义字符实现,仅sysadmin用户可以访问。
该参数属于SIGHUP类型参数,请参考表1中对应设置方法进行设置。
- 建议使用%转义字符定义日志文件名称,否则难以对日志文件进行有效的管理。
- 当log_destination设为csvlog时,系统会生成附加了时间戳的日志文件名,文件格式为csv格式,例如“server_log.1093827753.csv”。
取值范围:字符串
默认值:postgresql-%Y-%m-%d_%H%M%S.log
log_file_mode
参数说明:logging_collector设置为on时,log_file_mode设置服务器日志文件的权限。在Windows系统下,此选项无效。通常log_file_mode的取值是能够被chmod和umask系统调用接受的数字。
该参数属于SIGHUP类型参数,请参考表1中对应设置方法进行设置。
- 使用此选项前请设置log_directory,将日志存储到数据目录之外的地方。
- 因日志文件可能含有敏感数据,故不能将其设为对外可读。
取值范围:整型,0000~0777 (8进制计数,转化为十进制 0 ~ 511)。
- 0600表示只允许服务器管理员读写日志文件。
- 0640表示允许管理员所在用户组成员只能读日志文件。
默认值:0600
log_truncate_on_rotation
参数说明:logging_collector设置为on时,log_truncate_on_rotation设置日志消息的写入方式。
该参数属于SIGHUP类型参数,请参考表1中对应设置方法进行设置。
示例如下:
假设日志需要保留7天,每天生成一个日志文件,日志文件名设置为server_log.Mon、server_log.Tue等。第二周的周二生成的日志消息会覆盖写入到server_log.Tue。设置方法:将log_filename设置为server_log.%a ,log_truncate_on_rotation设置为on,log_rotation_age设置为1440,即日志有效时间为1天。
取值范围: 布尔型
- on表示GaussDB以覆盖写入的方式写服务器日志消息。
- off表示GaussDB将日志消息附加到同名的现有日志文件上。
默认值:off
log_rotation_age
参数说明:logging_collector设置为on时,log_rotation_age决定创建一个新日志文件的时间间隔。当现在的时间减去上次创建一个服务器日志的时间超过了log_rotation_age的值时,将生成一个新的日志文件。
该参数属于SIGHUP类型参数,请参考表1中对应设置方法进行设置。
取值范围:整型,0 ~ 35791394,单位为min。其中0表示关闭基于时间的新日志文件的创建。
默认值:1d(即1440min)
log_rotation_size
参数说明:logging_collector设置为on时,log_rotation_size决定服务器日志文件的最大容量。当日志消息的总量超过日志文件容量时,服务器将生成一个新的日志文件。
该参数属于SIGHUP类型参数,请参考表1中对应设置方法进行设置。
取值范围:整型,0 ~ 2097151,单位为KB。
0表示关闭基于容量的新日志文件的创建。
默认值:20MB
syslog_facility
参数说明:log_destination设置为syslog时,syslog_facility配置使用syslog记录日志的“设备”。
该参数属于SIGHUP类型参数,请参考表1中对应设置方法进行设置。
取值范围:枚举类型,有效值有local0、local1、local2、local3、local4、local5、local6、local7。
默认值:local0
syslog_ident
参数说明:log_destination设置为syslog时,syslog_ident设置在syslog日志中GaussDB日志消息的标识。
该参数属于SIGHUP类型参数,请参考表1中对应设置方法进行设置。
取值范围:字符串
默认值:postgres
event_source
参数说明:log_destination设置为eventlog时,event_source设置在日志中GaussDB日志消息的标识。
该参数属于POSTMASTER类型参数,请参考表1中对应设置方法进行设置。
取值范围:字符串
默认值:PostgreSQL