我有兴趣使用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等)都将是晚了。我该怎么解决这个问题?