使用 java.util.logging 记录日志
PostgreSQL JDBC 驱动程序支持使用日志记录(或跟踪)来帮助您解决在应用程序中使用 pgJDBC 驱动程序时遇到的问题。
pgJDBC驱动程序使用自 JDK 1.4以来 Java 中定义的日志记录API,这使其成为一个很好的驱动程序选择,因为它不会为日志记录框架添加任何外部依赖项。java.util.logging
是一个非常丰富而强大的工具,解释如何充分发挥其潜力超出了这些文档的范围,为此请参考 Java 日志记录概述。
此日志记录支持是从 pgJDBC 驱动程序版本 42.0.0 开始添加的,以前的版本使用自定义机制,若要启用日志记录,将其替换为当前版本中使用的java.util.logging
,旧机制在新版本中不再可用。
注意
请注意,虽然大多数人长时间要求使用日志记录框架,但这种支持主要是为了调试驱动程序本身,而不是常规 SQL 查询调试。
日志记录 API 提供静态和动态配置控制。静态控制使现场服务人员能够设置特定配置,然后使用新的日志记录设置重新启动应用程序。动态控制允许更新当前正在运行的程序内的日志记录配置。
pgJDBC 驱动程序使用的根记录器是org.postgresql
。
缺省 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