配置日志
最近更新时间: 2025-02-18 16:02:00
TDSQL PG运行参数配置文件Postgresql.conf中涉及日志配置参数如下所示:
#日志相关配置
#用户访问日志格式支持多种方法来记录服务器消息,包括stderr、csvlog
#如果csvlog被包括在log_destination中,日志项会以"逗号分隔值" (CSV)格式被输出,这样可以很方便地把日志载入到程序中
log_destination = 'csvlog'
#启用用户访问日志收集器
logging_collector = on
#日志存放目录,可以是相对路径(相对了data目录)或绝对路径
log_directory = 'pg_log'
#设置日志文件的权限
log_file_mode = 0600
#按我先前经常是只有log_rotation_age这个值有效果
log_truncate_on_rotation = 'on'
#120分钟切换一次
log_rotation_age = 120
#64MB切换一次
log_rotation_size = 64MB
#会话的当前执行命令保留长度,用于在字段pg_stat_activity.query中显示
track_activity_query_size = 4096
#配置sql语句执行超过多少毫秒数时,语句将被记录,值为-1时禁用,0时记录所有语句
log_min_duration_statement = 1000
#是否记录checkpoint
log_checkpoints = on
#是否记录连接
log_connections = on
#是否记录断开连接
log_disconnections = on
#是否记录autovacuum执行日志
log_autovacuum_min_duration = 0
#是否记录所有语句的执行时间,值为on时将单独记录所有语句的执行时间,这里不记录语句
log_duration = off
#stderr配置日志记录的内容
log_line_prefix = '%h'
#控制那些类型的语句被记录,有效值是 none (off)、ddl、mod和 all(所有语句)。
#如果log_min_duration_statement 值为0时,则log_statement什么值的效果都一样
#如果log_min_duration_statement 值大于0,并且log_statement为ddl则ddl语句全部表被记录,为两条log
#dml超时才被记录,为一条记录
log_statement = 'none'
#设置在服务器日志中写入的时间戳的时区
log_timezone = 'PRC'
log_filename = 'postgresql-%A-%H.log'
#是否记录autovacuum执行日志
log_autovacuum_min_duration = 0
#控制被发送给客户端的消息级别
#其值有debug5,debug4,debug3,debug2,debug1,log,notice,warning,error
client_min_messages = notice
#控制哪些消息级别被写入到服务器日
#其值有debug5,debug4,debug3,debug2,debug1,log,notice,warning,error
log_min_messages = warning
#控制哪些导致一个错误情况的 SQL 语句被记录在服务器日志中
#默认值是ERROR,它表示导致错误、日志消息、致命错误或恐慌错误的语句将被记录在日志中
log_min_error_statement = error