我想在logback文件中获取hibernate conncection信息(如driver_class,url,username,password)。 (不是手动)
以下是我的回溯文件。
<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>
有效。但我想在logback.xml中自动从hibernate.cfg.xml获取有关连接信息的信息(如驱动程序类,url,用户,密码)。
您的合作将不胜感激。
请帮助。
感谢。
答案 0 :(得分:0)
从hibernate.cfg.xml
中获取值可能需要编写一些代码。但是,如果您将属性文件中的所有hibernate属性外部化,则可以import them into your logback configuration。
Hibernate支持在类路径的根目录中使用名为hibernate.properties
的属性文件,或者在配置会话工厂时可以将java.util.Properties
的实例传递给Configuration.setProperties()
。
如果你可以将你的hibernate属性放到属性文件中,你可以从logback中使用它,如下所示:
类路径上的<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" />
。