云数据库 GAUSSDB-记录日志的内容:log_line_prefix

时间:2024-11-13 14:45:19

log_line_prefix

参数说明:控制每条日志信息的前缀格式。日志前缀类似于printf风格的字符串,在日志的每行开头输出。用以%为开头的“转义字符”表示状态信息,具体请参见表1

表1 转义字符表

转义字符

状态信息

%a

应用程序名称。

%u

用户名。

%d

数据库名。

%r

远端主机名或者IP地址以及远端端口,在不启动log_hostname时显示IP地址及远端端口。

%h

远端主机名或者IP地址,在不启动log_hostname时只显示IP地址。

%p

线程ID。

%t

时间戳(不带毫秒,Windows上没有时区)。

%m

带毫秒的时间戳。

%n

表示指定错误上报的节点。

%i

命令标签:会话当前执行的命令类型。

%e

SQLSTATE错误码。

%c

会话ID,详见说明。

%l

每个会话或线程的日志编号,从1开始。

%s

线程启动时间。

%v

虚拟事务ID(backendID/ localXID)

%x

事务ID(0表示没有分配事务ID)。

%q

不产生任何输出。如果当前线程是后端线程,忽略这个转义序列,继续处理后面的转义序列;如果当前线程不是后端线程,忽略这个转义序列和它后面的所有转义序列。

%S

会话ID。

%T

Trace ID。

%%

字符%。

转义字符%c打印的会话ID,由两个4字节的十六进制数组成,通过字符“.”分开。这两个十六进制数分别表示线程的启动时间及线程编号,所以%c也可以用作一种更节省空间的记录线程启动时间和编号的方式。比如,可以用下面的查询从pg_stat_activity中生成这种十六进制的会话ID:
1
2
3
SELECT to_hex(EXTRACT(EPOCH FROM backend_start)::integer) || '.' ||
       to_hex(pid)
FROM pg_stat_activity;
  • 当log_line_prefix设置为非空值时,需要保证最后一个字符是一个空格,以此来直观地与后续的日志行进行区分,也可以使用一个标点符号。
  • Syslog会生成时间戳及线程ID信息,所以当登录日志时,不需要包含这些转义字符。

参数类型:字符串

参数单位:

取值范围:字符串

默认值:'%m %n %u %d %h %p %S %x %a '

%m %n %u %d %h %p %S %x %a 表示会话开始时间戳、错误上报节点、用户名、数据库名、远程主机名或IP、线程ID、会话ID、事务ID、应用程序名称。

设置方式:该参数属于SIGHUP类型参数,请参考表1中对应设置方法进行设置。

设置建议:根据对日志状态信息的需求进行设置。

设置不当的风险与影响:请在充分理解参数含义,并经过测试验证后进行修改,避免出现意料之外的结果。

support.huaweicloud.com/distributed-devg-v8-gaussdb/gaussdb-10-0287.html