Apache Sling/felix中的java OSGi slf4j日志记录
我正在尝试在我的OSGi捆绑包中使用slf4j logger,用于Apache Sling
将依赖项和导入标记添加到POM时。xml,则捆绑包仍处于已解析状态
我少了什么吗
激活剂。班级
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
public class Activator implements BundleActivator {
...
private final Logger log = LoggerFactory.getLogger(SampleServiceImpl.class);
...
POM。xml
<Import-Package>org.slf4j</Import-Package>
...
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-api</artifactId>
<version>1.7.6</version>
<scope>provided</scope>
</dependency>
编辑 如果我注释掉Logger实例化并从Activator中删除导入。类服务保持在已解决状态。 一旦我在POM中删除了关于slf4的行,一切都正常了
# 1 楼答案
我想您的
<Import-Package>org.slf4j</Import-Package>
语句会阻止导入其他必需的包。该元素的值应该是org.slfj4.*,*
,以便生成所有“自动”导入。有关更多信息,请参见maven-bundle-plugin docs但是,如果您的pom类似于slingbucks sample这样的Sling包,那么无论如何,您都不应该需要这样的显式导入语句
# 2 楼答案
也许你的激活器的启动方法有一个异常。添加一个try-catch并简单地将异常转储到系统上。出去看看发生了什么。您是否也安装了一些处理slf4j日志的包,比如pax日志