使用Spring而不是persistence.xml初始化Log4j2 JPAAppender

时间:2015-06-17 08:17:19

标签: java spring jpa log4j2 persistence.xml

我有兴趣使用Log4j2的JPAAppender进行日志记录。见https://logging.apache.org/log4j/2.x/manual/appenders.html#JPAAppender 在文档中,它声明除了你正在使用的主要部分之外,应该在自己的持久性单元中进行配置,这一切都很好。 但是,由于我的主persistenceunit没有在persistence.xml中配置(当然除了它的名称),但在我的Spring上下文中,我想对JPAAppender做同样的事情,并且在persistence.xml中只有最小的配置。

类似的东西:

<persistence xmlns="http://xmlns.jcp.org/xml/ns/persistence"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/persistence
                             http://xmlns.jcp.org/xml/ns/persistence/persistence_2_1.xsd"
         version="2.1">
<persistence-unit name="MainPU"/>
<persistence-unit name="loggingPU" transaction-type="RESOURCE_LOCAL">
    <provider>org.hibernate.jpa.HibernatePersistenceProvider</provider>
    <class>com.LogEvent</class>
    <shared-cache-mode>NONE</shared-cache-mode>
</persistence-unit>

然而,引用JPAAppender的log4j2 LoggingContext是在我的Springcontext之前加载的,因此任何初始化(强制我在JPAAppender的persistence.xml中声明db-properties,如数据库url等)都将是晚了。我该怎么解决这个问题?

0 个答案:

没有答案