Java EclipseLink:如何为EclipseLink 2.7.0设置SLF4J记录器
BundleJava EclipseLink:如何为EclipseLink 2.7.0设置SLF4J记录器,java,jpa,logging,osgi,eclipselink,Java,Jpa,Logging,Osgi,Eclipselink,Bundleorg.eclipse.persistence.extension_2.7.0.qualifier.jar(我安装到osgi框架中)包含类org.eclipse.persistence.logging.slf4j.SLF4JLogger。在我的持久性文件中 <property name="eclipselink.logging.logger" value="org.eclipse.persistence.logging.slf4j.SLF4JLogger"/> 我已经检
org.eclipse.persistence.extension_2.7.0.qualifier.jar
(我安装到osgi框架中)包含类org.eclipse.persistence.logging.slf4j.SLF4JLogger
。在我的持久性文件中
<property name="eclipselink.logging.logger" value="org.eclipse.persistence.logging.slf4j.SLF4JLogger"/>
我已经检查了bundleorg.eclipse.persistence.extension\u 2.7.0.qualifier.jar
没有导出包org.eclipse.persistence.logging.slf4j
,所以,有人能解释一下如何让eclipselink登录到slf4j吗?请确保包含“org.eclipse.persistence.extension”jar,它应该可以正常工作。我使用的maven坐标是
<dependency>
<groupId>org.eclipse.persistence</groupId>
<artifactId>org.eclipse.persistence.extension</artifactId>
<version>2.7.2</version>
<scope>runtime</scope>
</dependency>
org.eclipse.persistence
org.eclipse.persistence.extension
2.7.2
运行时
确保包含“org.eclipse.persistence.extension”jar,它应该可以正常工作。我使用的maven坐标是
<dependency>
<groupId>org.eclipse.persistence</groupId>
<artifactId>org.eclipse.persistence.extension</artifactId>
<version>2.7.2</version>
<scope>runtime</scope>
</dependency>
org.eclipse.persistence
org.eclipse.persistence.extension
2.7.2
运行时
由于org.eclipse.persistence.logging.slf4j.SLF4JLogger
不是通过提供的包导出的,因此您必须在代码中修改它,方法是创建一个logger类,该类扩展org.eclipse.persistence.logging.AbstractSessionLog
,并像在原始包中那样重写/实现一些方法org.eclipse.persistence.logging.slf4j.SLF4JLogger
基本上,它只是EclipseLink原始记录器的副本
现在,在创建EntityManagerFactory时传递给PersistenceProvider的JPA属性映射中,添加EclipseLink日志记录类别和级别
Map<String, Object> properties = new HashMap<>();
// Add the necessary logging category and level as per your requirement.
properties.put("eclipselink.logging.level.connection", "FINE");
properties.put("eclipselink.logging.level.jpa", "FINER");
properties.put("eclipselink.logging.level.sql", "FINEST");
// and so on for other categories which can be found in
// org.eclipse.persistence.logging.SessionLog
// Now put your logger class in persistence properties map so that EclipseLink use your logger instance.
properties.put("eclipselink.logging.logger", <your logger>.class.getName());
Map properties=newhashmap();
//根据需要添加必要的日志记录类别和级别。
properties.put(“eclipseelink.logging.level.connection”、“FINE”);
properties.put(“eclipseelink.logging.level.jpa”、“FINER”);
properties.put(“eclipseelink.logging.level.sql”、“FINEST”);
//等其他类别,可在中找到
//org.eclipse.persistence.logging.SessionLog
//现在将您的logger类放在持久性属性映射中,以便EclipseLink使用您的logger实例。
properties.put(“eclipseelink.logging.logger”、.class.getName());
另外,请确保将以下具有您选择级别的记录器添加到日志后端
例如,使用Logback时,声明将如下所示
<logger name="eclipselink.logging" level="DEBUG" additivity="false">
<appender-ref ref="ROLLING_FILE"/>
</logger>
来自一个开源项目,该项目改编了原始org.eclipse.persistence.logging.slf4j.SLF4JLogger
希望这会有所帮助。因为org.eclipse.persistence.logging.slf4j.SLF4JLogger
不是通过提供的包导出的,所以您必须在代码中修改它,方法是创建一个logger类,该类扩展org.eclipse.persistence.logging.AbstractSessionLogg
并覆盖/实现一些在原始包中完成的方法org.eclipse.persistence.logging.slf4j.SLF4JLogger
基本上,它只是EclipseLink原始记录器的副本
现在,在创建EntityManagerFactory时传递给PersistenceProvider的JPA属性映射中,添加EclipseLink日志记录类别和级别
Map<String, Object> properties = new HashMap<>();
// Add the necessary logging category and level as per your requirement.
properties.put("eclipselink.logging.level.connection", "FINE");
properties.put("eclipselink.logging.level.jpa", "FINER");
properties.put("eclipselink.logging.level.sql", "FINEST");
// and so on for other categories which can be found in
// org.eclipse.persistence.logging.SessionLog
// Now put your logger class in persistence properties map so that EclipseLink use your logger instance.
properties.put("eclipselink.logging.logger", <your logger>.class.getName());
Map properties=newhashmap();
//根据需要添加必要的日志记录类别和级别。
properties.put(“eclipseelink.logging.level.connection”、“FINE”);
properties.put(“eclipseelink.logging.level.jpa”、“FINER”);
properties.put(“eclipseelink.logging.level.sql”、“FINEST”);
//等其他类别,可在中找到
//org.eclipse.persistence.logging.SessionLog
//现在将您的logger类放在持久性属性映射中,以便EclipseLink使用您的logger实例。
properties.put(“eclipseelink.logging.logger”、.class.getName());
另外,请确保将以下具有您选择级别的记录器添加到日志后端
例如,使用Logback时,声明将如下所示
<logger name="eclipselink.logging" level="DEBUG" additivity="false">
<appender-ref ref="ROLLING_FILE"/>
</logger>
来自一个开源项目,该项目改编了原始org.eclipse.persistence.logging.slf4j.SLF4JLogger
希望这会有所帮助。虽然此链接可以回答问题,但最好在此处包含答案的基本部分,并提供链接供参考。如果链接页面发生更改,仅链接的答案可能无效。-这并不能回答这个问题。一旦你有足够的钱,你将能够;相反@NKSM我已经用足够的信息更新了我的答案。请看你是否仍然认为它没有回答这个问题。如果答案是正确的,请删除否决票。任何其他评论员都希望查看我提供的更新答案,我认为这完全解决了OP的问题。虽然此链接可以回答问题,但最好在此处包含答案的基本部分,并提供链接供参考。如果链接页面发生更改,仅链接的答案可能无效。-这并不能回答这个问题。一旦你有足够的钱,你将能够;相反@NKSM我已经用足够的信息更新了我的答案。请看你是否仍然认为它没有回答这个问题。如果答案是正确的,那么请删除否决票。任何其他评论员都希望查看我提供的更新答案,我认为这已经完全解决了OP的问题。