我正在尝试为我的项目学习OSGi,并且遇到了Equinox 3.5中引入的ExtendedLogService
和ExtendedLogReaderService
。是否有任何教程或示例可以帮助我理解它的工作原理并在我的项目中使用它?
感谢名单。
答案 0 :(得分:1)
我还没有尝试过ExtendedLogService。在查看接口时,它看起来与流行的日志框架类似。所以最大的问题是为什么不只是使用已建立的日志API?使用OSGi日志记录服务会将所有代码绑定到OSGi。已建立的框架在OSGi内部和外部工作。 我建议您在应用程序中使用slf4j。要在OSGi中使其工作,您需要pax logging framework。 Pax日志记录还支持其他大型日志记录API,如log4j和java.util.logging。如果您正在进行服务器项目,那么您可能还需要查看已包含pax日志记录和许多其他库的Apache Karaf。
答案 1 :(得分:0)
我没有实现ExtendedLogService,但我确实实现了org.osgi.service.log.LogReaderService
org.osgi.service.log.LogEntry , org.osgi.service.log.LogListener
,我觉得这很有帮助。
关于教程我遵循这个Logger Tutorial
我对OSGi中日志记录功能的看法,
OSGi中的日志记录结构
我特别避免使用log4j和slf4j,因为它们不适用于S0A架构。 虽然有PaxLogging可用,这使得log4j可以在OSGi上运行,但我认为捆绑到log4j属性的信息会破坏设计模式。有许多开发人员质疑OSGified环境中的log4j。
LogListener (LogListnerImpl)
^
|
| Dispatches the LogEvent to LogListner
|
Log Service ---- Send a LogEvent --> LogReaderService (log.jar)
^
|
|
Bundle write a log
=============================================== ============================
如果有经验的开发人员纠正我,我将不胜感激。