我有一个具有以下内容的OSGi应用程序:


它在Websphere Liberty上运行
它通过osgi使用来自websphere liberty的openjpa进行数据库访问-通过导入必要的javax.persistence包来实现。
它包含一个单独的日志包,用于导出org.slf4j软件包


目前,websphere liberty提供的openjpa将所有内容记录到控制台输出/messages.log文件中。

我想配置此行为并指定其他文件/使其使用日志记录包。

我尝试过的事情:


在server.xml中提供一个元素-这将被忽略
在openjpa.Log属性中指定“ File = filename”选项-这将导致文件不翻转,这意味着其大小会无限增加
尝试在应用程序捆绑包中创建我自己的Logging实现,并提供它-导致类未找到错误,因为libty中的openjpa捆绑包找不到我的日志记录类。

最佳答案

一个月前,我就这个话题回答了一个非常类似的问题[1]。问题是传统的WebSphere 8.5.5.x,但是,Liberty的信息也几乎相同。请阅读该链接,如果仍有疑问,请询问具体信息。让我在您的评论中添加一些细节:就server.xml中忽略的所有OpenJPA跟踪设置而言,我希望当用户不使用容器管理的实体管理器时,WAS跟踪会忽略它们。 [1])。在这种情况下,您需要将跟踪属性放在persistence.xml文件中,或者可以将其指定为JVM属性。最后,关于日志包装,在使用OpenJPA跟踪时,不能指望日志文件包装。如果您使用涉及容器的容器管理实体管理器,然后使用WAS跟踪,则会得到包装。但是,此包装是WAS功能,而不是OpenJPA。

[1]
WebSphere (8.5.5) does not logging OpenJPA

关于java - OpenJPA登录Websphere自由osgi,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/39827448/

10-12 05:25