首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >日志返回在OSGi容器中包含片段

日志返回在OSGi容器中包含片段
EN

Stack Overflow用户
提问于 2012-05-25 03:43:02
回答 1查看 1.4K关注 0票数 0

我有一个包含src/main/resources/logback/conf/a/CommonAppenders.xml文件的项目a-conf

代码语言:javascript
复制
<included>
    <appender name="FILE" class="FileAppender" />
</included>

另外,我还有另一个带有logback.xml配置的项目a-runable,可以导入CommonAppenders.xml

代码语言:javascript
复制
<configuration>
    <!-- this is classpath import -->
    <include resource="logback/conf/a/CommonAppenders.xml" />
    ...
</configuration>

我可以在包含所有依赖项(a-conf是其中之一)的独立jar中编译a-runable,也可以将其作为OSGi包。当我运行独立的应用程序时,一切正常-日志文件显示为CommonAppenders.xml中指定的文件。但是当我运行OSGi容器时,没有创建日志文件。我认为logback不能包含来自类路径的资源,因为OSGi容器中的每个包都有自己的类加载器(logback使用ClassLoader.getResource()来包含文件)。

我已经在a-conf.jar/META-INF/MANIFEST.MF中检查了Export-Package: logback.conf.a (这是由maven bundlor插件完成的)-它是正常的。已将Import-Package: logback.conf.a添加到a-runable,但不起作用。

我不知道我能做什么(不需要修改代码,只需要配置)。任何帮助都是受欢迎的。

附注:我也发现了类似的问题here,但是logback.xml已经在类路径中了,而且它自己的附加器工作得很好。此外,我在现有日志中没有任何FileNotFoundException

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-05-25 09:10:28

默认情况下,我相信如果你没有配置一个监听器,Logback的启动错误就会被删除(但我可能记错了)。关键字可能是a-conf需要是包含logback.jar的包的片段。这就是我为我的捆绑包做的事情,它有一些自制的附加物。

如果您希望看到预先配置Logback以将其启动错误输出到OSGi容器的设置,请查看Pax-Logger1.7- https://github.com/ops4j/org.ops4j.pax.logging/tree/master/pax-logging-logback

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10744235

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档