暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

PostgreSQL 15 新特性:新的日志记录格式-jsonlog

原创 肯肯在学习 2022-10-26
1192

发布的 PostgreSQL 15引入了许多新特性和改进,但据我所知,其中一个将改变我们最喜欢的数据库的监控方式:以 JSON 记录守护进程状态的能力

本质上,log_destination配置参数现在有另一个枚举值:jsonlog. 当这个值被添加到 时log_destination,PostgreSQL 将开始发出 JSON 结构的日志。这是一个简单的配置示例:

% grep log_destination /postgres/15/data/postgresql.conf
log_destination = 'stderr,jsonlog'
复制



这就是log重新加载配置后目录的显示方式:

% sudo -u postgres ls /postgres/15/data/log -1
postgresql-Fri.json
postgresql-Fri.log
复制



显然,日志将包含相同的值,但格式不同。

还有更多:当在 中设置多个值时log_destination,PostgreSQL 将存储一个名为 的文件current_logfiles,其中每一行将代表 PostgreSQL 必须存储数据的格式和当前日志文件:

% sudo -u postgres cat /postgres/15/data/current_logfiles
stderr log/postgresql-Fri.log
jsonlog log/postgresql-Fri.json

复制



通过这种方式,不仅 PostgreSQL,甚至系统管理员都可以跟踪系统现在要记录的位置,这在有日志轮换的情况下尤其有用。

在 SQL 端,该函数pg_current_logfile()可以选择接受日志格式(与 中指定的相同log_destination)并根据选择的格式提供当前日志文件:

testdb=# select pg_current_logfile();
   pg_current_logfile
------------------------
 log/postgresql-Fri.log

testdb=# select pg_current_logfile( 'jsonlog' );
   pg_current_logfile
-------------------------
 log/postgresql-Fri.json

testdb=# select pg_current_logfile( 'stderr' );
   pg_current_logfile
------------------------
 log/postgresql-Fri.log

复制


或许,我们将会看到越来越多的日志处理应用程序来切换新的 JSON 日志格式!

原文标题:PostgreSQL 15: logging in JSON
原文作者:Chris Balnave
原文地址:https://fluca1978.github.io/2022/10/21/PostgreSQL15JsonLogs.html

「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论