2016-10-03 91 views
0

我有了以下的OSGi應用程序:OpenJPA的記錄

  • 它運行在WebSphere自由
  • 它使用來自WebSphere自由OpenJPA的通過OSGi的訪問數據庫 - 它通過執行此操作導入必要的javax.persistence包。
  • 它包含用於記錄一個單獨的束,其導出org.slf4j包

目前由WebSphere自由提供的OpenJPA的一切記錄到控制檯輸出/ messages.log文件。

我想配置此行爲並指定一個不同的文件/使它使用日誌包。

事情我已經嘗試:

  • 在server.xml提供一個元素 - 這個被忽略
  • 指定在openjpa.Log屬性「文件=文件名」選項 - 這會導致一個文件這意味着它的大小無限增長
  • 嘗試在應用程序包中創建我自己的日誌記錄實現並提供 - 這導致類未找到錯誤,因爲Liberty內的openjpa包無法找到我的日誌記錄類。

回答

1

我在一個月前回答了關於這個話題的一個非常類似的問題[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

+0

我看到的,以便在'openjpa.Log'沒有被忽略,我不使用容器管理持久性,因此在server.xml中配置將被忽略。而且由於openJPA本身不支持日誌封裝,所以我的問題是讓它在OSGi應用程序中以某種方式與log4j協同工作。 – BX21