我正在尝试在scout应用程序中设置日志记录,因此我尝试设置PAX-logger。
我将pax-logging-api-1.7.0.jar
,pax-logging-service-1.7.0.jar
和pax-confman-propsloader-0.2.1.jar
添加到我的目标中。
我将所有三个导入到说唱产品中。
在config.ini
我添加
### Logging
log4j.rootLogger=DEBUG, A2
log4j.appender.A1=org.apache.log4j.ConsoleAppender
log4j.appender.A1.layout=org.apache.log4j.PatternLayout
#default layout:
#log4j.appender.A1.layout.ConversionPattern=%-4r [%t] %-5p %c %x - %m%n
log4j.appender.A1.layout.ConversionPattern=%d{HH:mm:ss,SSS} %-5p [%-30.30t] %-40.40c %x - %m%n
log4j.appender.A2=org.apache.log4j.FileAppender
log4j.appender.FILE.File=/Users/marko/Desktop/log.out
log4j.appender.X.layout=org.apache.log4j.PatternLayout
#A2 layout:
log4j.appender.X.layout.conversionPattern=%m%n
log4j.logger.org.springframework.osgi=DEBUG
log4j.logger.org.springframework=INFO
log4j.logger.org.apache.wicket=INFO
log4j.logger.org.mortbay=INFO
log4j.logger.org.apache.wicket.util.thread=INFO
log4j.logger.org.compass.core.lucene.engine.optimizer.ScheduledLuceneSearchEngineOptimizer=INFO
log4j.logger.org.springframework.osgi.extender.internal.support.NamespaceManager=INFO
log4j.logger.org.springframework.osgi.extender.internal.support.NamespacePlugins=INFO
也在config.ini
我添加
osgi.bundles=org.eclipse.equinox.cm@1\:start,org.ops4j.pax.logger.*@2\:start,org.ops4j.pax.confman.propsloader@2\:start
如果我启动应用程序日志会记录到控制台但不会记录在文件中。并且控制台内的logg没有格式化,因为它在config.ini中设置。
然后我发现我没有在产品中加入org.service.cm
。
当我在产品中添加它时,我有错误:
org.osgi.framework.BundleException: Could not resolve module: org.eclipse.equinox.cm [1]
Unresolved requirement: Import-Package: org.osgi.service.cm; version="[1.5.0,1.6.0)
即使我在org.apache.felix.configadmin
内有这个包。
我按照以下说明进行操作:https://ops4j1.jira.com/wiki/display/paxlogging/PaxLogging+inside+PDE
和
https://ops4j1.jira.com/wiki/display/paxlogging/How+to+use+Pax+Logging+in+my+bundles
让我担心的是:
如果这是可行的,我不是岸。 (docx4j使用log4j)确保您的捆绑jar中不包含log4j.jar,commons-logging.jar和您要使用的任何其他遗留API。