使用 java.util.logging 进行日志记录
PostgreSQL® JDBC 驱动程序支持使用日志记录(或跟踪)来帮助解决在应用程序中使用 pgJDBC 驱动程序时遇到的问题。
pgJDBC 驱动程序使用 java.util.logging
的日志记录 API,该 API 自 JDK 1.4 以来一直是 Java 的一部分,这使其成为驱动程序的良好选择,因为它不会为日志记录框架添加任何外部依赖项。java.util.logging
是一个非常丰富且强大的工具,解释如何充分利用它超出了这些文档的范围,有关详细信息,请参阅 Java 日志记录概述。
此日志记录支持自 pgJDBC 驱动程序的 42.0.0 版本开始添加,以前的版本使用自定义机制来启用日志记录,该机制已在当前版本中被使用 java.util.logging
的机制所取代,旧机制不再可用。
注意
请注意,虽然大多数人长期以来都要求使用日志记录框架,但此支持主要是为了调试驱动程序本身,而不是用于一般的 SQL 查询调试。
配置
日志记录 API 提供静态和动态配置控制。静态控制使现场服务人员能够设置特定配置,然后使用新的日志记录设置重新启动应用程序。动态控制允许在当前运行的程序中更新日志记录配置。
pgJDBC 驱动程序使用的根记录器是 org.postgresql
。
使用 logging.properties 文件启用日志记录
默认的 Java 日志框架将配置存储在名为 logging.properties
的文件中。设置使用点符号格式存储在每行。Java 在 Java 安装目录的 lib
文件夹中安装了一个全局配置文件,但您也可以通过在启动 Java 程序时指定 java.util.logging.config.file
属性来使用单独的配置文件。logging.properties
文件也可以创建并存储在各个项目中。
以下是在 logging.properties
中可以进行的设置示例:
# Specify the handler, the handlers will be installed during VM startup.
handlers = java.util.logging.FileHandler
# Default global logging level.
.level = OFF
# Default file output is in user's home directory.
java.util.logging.FileHandler.pattern = %h/pgjdbc%u.log
java.util.logging.FileHandler.limit = 5000000
java.util.logging.FileHandler.count = 20
java.util.logging.FileHandler.formatter = java.util.logging.SimpleFormatter
java.util.logging.FileHandler.level = FINEST
java.util.logging.SimpleFormatter.format = %1$tY-%1$tm-%1$td %1$tH:%1$tM:%1$tS %4$s %2$s %5$s%6$s%n
# Facility specific properties.
org.postgresql.level = FINEST
当您运行应用程序时,传递系统属性:
java -jar -Djava.util.logging.config.file=logging.properties run.jar