是否有可能为Postgresql中的特定数据库设置单独的日志文件?

更新我的意思是我可以有多个日志文件每个数据库? 可能不是,但我很好奇,如果有什么可能像Postgresql开箱即可,或者如果你需要第三方产品或build立自己的应用程序来做到这一点。

我从另一个线程看到,你可以这样做:

ALTER DATABASE your_database_name SET log_statement ='all';

我正在浏览在线文档,我发现这个链接的日志logging

有:

log_filename(string)启用logging_collector时,此参数设置创build的日志文件的文件名。 该值被视为strftime模式,所以%-escapes可以用来指定随时间变化的文件名。 (请注意,如果有任何时区相关的%-escapes,计算是在由log_timezone指定的区域中完成的。)支持的%-escapes与Open Group的strftime规范中列出的类似。 请注意,系统的strftime不是直接使用,所以平台特定的(非标准)扩展不起作用。 缺省值是postgresql-%Y-%m-%d_%H%M%S.log。

如果指定的文件名不带转义符,则应该计划使用日志轮转实用程序来避免最终填充整个磁盘。 在8.4之前的版本中,如果没有%转义出现,PostgreSQL会追加新的日志文件创build时间的纪元,但不再是这种情况。 如果在log_destination中启用了CSV格式输出,则会将时间戳logging文件名称附加.csv以创buildCSV格式输出的文件名。 (如果log_filename以.log结尾,则replace后缀。)

此参数只能在postgresql.conf文件或服务器命令行中设置。

嘘,有没有什么办法可以为任何人试过的服务器上的特定数据库设置日志logging?

你可以设置全局的log_statement=none 。 那么对于特定的数据库:

ALTER DATABASE my_db_name set log_statement='all'

我也有这在我的全局configuration,所以日志文件显示数据库名称和用户。
log_line_prefix = '< %m %d %u >'