如何将Hibernate连接信息发送到记录



我想在logback文件中获取Hibernate Conncection信息(例如driver_class,URL,用户名,密码)。(不是手动)

这个belows是我的记录文件。

<appender name="dbAppender" class="ch.qos.logback.classic.db.DBAppender">
        <append>false</append>  //unfortunately it does not work.
        <connectionSource class="ch.qos.logback.core.db.DriverManagerConnectionSource">
            <driverClass>oracle.jdbc.driver.OracleDriver</driverClass>
            <url>jdbc:oracle:thin:@localhost:1521:aaa</url>
            <user>bbb</user>
            <password>ccc</password>
        </connectionSource>
    </appender>

它有效。但是我想从Hibernate.cfg.xml自动获取有关连接信息(例如驱动程序类,URL,用户,密码)的信息。

您的合作将不胜感激。

请帮助。

谢谢。

hibernate.cfg.xml中获取值可能需要编写一些代码。但是,如果您将所有冬眠属性外部化在属性文件中,则可以将其导入到记录配置中。

Hibernate支持使用 hibernate.properties的属性文件,在classPath的根中,或者在配置会话工厂时,您可以将java.util.Properties的实例传递给Configuration.setProperties()

如果您可以将Hibernate属性获取到属性文件中,则可以从记录中使用它:

classPath上的属性文件

<configuration>
  <property resource="hibernate.properties" />
  <appender name="dbAppender" class="ch.qos.logback.classic.db.DBAppender">
    <append>false</append>  //unfortunately it does not work.
    <connectionSource class="ch.qos.logback.core.db.DriverManagerConnectionSource">
        <driverClass>${hibernate.connection.driver_class}</driverClass>
        <url>${hibernate.connection.url}</url>
        <user>${hibernate.connection.username}</user>
        <password>${hibernate.connection.password}</password>
    </connectionSource>
  </appender>
</configuration>

如果您的属性不在类路径上,则可以使用<property file="path/to/some.properties" />

最新更新