Alexey Romanov
Alexey Romanov

Reputation: 170713

How to configure OpenJPA logging with Pax Logging?

How can I configure OpenJPA in to use Pax Logging in Karaf? According to several threads I found (e.g. log4j error with pax-logging), it seems that setting

<property name="openjpa.Log" value="commons" />

(or slf4j) in persistence.xml and

log4j.category.openjpa.Tool=INFO
log4j.category.openjpa.Runtime=INFO
log4j.category.openjpa.Remote=INFO
log4j.category.openjpa.DataCache=INFO
log4j.category.openjpa.MetaData=INFO
log4j.category.openjpa.Enhance=INFO
log4j.category.openjpa.Query=INFO
log4j.category.openjpa.jdbc.SQL=INFO
log4j.category.openjpa.jdbc.SQLDiag=INFO
log4j.category.openjpa.jdbc.JDBC=INFO
log4j.category.openjpa.jdbc.Schema=INFO

in org.ops4j.pax.logging.cfg should work, but it doesn't for me. Versions are: OpenJPA 2.2.0, Karaf 2.3.0, Pax Logging 1.7.0. OpenJPA logging imports are resolved to Pax Logging correctly:

karaf@root> imports 106
...
OPS4J Pax Logging - API (4): org.apache.commons.logging; version=1.1.1
OPS4J Pax Logging - API (4): org.apache.commons.logging; version=1.0.4
OPS4J Pax Logging - API (4): org.apache.log4j; version=1.2.15
OPS4J Pax Logging - API (4): org.slf4j; version=1.7.1
OPS4J Pax Logging - API (4): org.slf4j; version=1.6.6
OPS4J Pax Logging - API (4): org.slf4j; version=1.5.11
OPS4J Pax Logging - API (4): org.slf4j; version=1.4.3
...

EDIT: I just noticed this version of Pax Logging exports org.apache.log4j, but if I set openjpa.Log to log4j, my bundle doesn't start up correctly:

2012-11-29 17:40:28,931 | INFO  | rint Extender: 1 | BlueprintContainerImpl           | container.BlueprintContainerImpl  330 | 7 - org.apache.aries.blueprint.core - 1.0.1 | Bundle ru.focusmedia.odp.server.datastore.jpa is waiting for dependencies [(&(&(!(org.apache.aries.jpa.proxy.factory=*))(osgi.unit.name=ODP_Server))(objectClass=javax.persistence.EntityManagerFactory))]

and it fails to obtain this dependency for some reason.

Upvotes: 1

Views: 833

Answers (1)

Achim Nierbeck
Achim Nierbeck

Reputation: 5285

I'm using the following and it works for me quite nicely:

<property name="openjpa.Log" value="slf4j" />

if needed you might add the log4j.category.openjpa also, I wasn't in need of it though.

Upvotes: 2

Related Questions