OSGi日志配置的附加日志配置

时间:2014-10-22 06:55:51

标签: cq5 logback sling

我将此捆绑包安装到CQ5.6.1

<dependency>
    <groupId>org.apache.sling</groupId>
    <artifactId>org.apache.sling.commons.log</artifactId>
    <version>4.0.0</version>
</dependency>

它运作良好,我只对加性标志有问题。

如果我为特定包添加Apache Sling Logging Logger配置(org.apache.sling.commons.log.LogManager.factory),它将不会添加,因此它不会从父记录器继承配置

我正在使用外部logback.xml。

<?xml version="1.0" encoding="UTF-8"?>
<configuration debug="true">
  <jmxConfigurator/>
  <newRule pattern="*/configuration/osgi" actionClass="org.apache.sling.commons.log.logback.OsgiAction"/>
  <newRule pattern="*/configuration/appender-ref-osgi" actionClass="org.apache.sling.commons.log.logback.OsgiAppenderRefAction"/>
  <osgi/>

   <appender name="syslog" class="net.logstash.logback.appender.LogstashSocketAppender">
        <host>HOST</host>
        <port>PORT</port>
    </appender>

   <logger name="com.my.package" level="INFO"/>

   <root level="WARN">
     <appender-ref ref="syslog" />
   </root>    
</configuration>

我也有一个OSGi配置:

org.apache.sling.commons.log.file="logs/other.log"
org.apache.sling.commons.log.level="debug"
org.apache.sling.commons.log.file.size="'.'yyyy-MM-dd"
org.apache.sling.commons.log.file.number=I"7"
org.apache.sling.commons.log.pattern="{0,date,dd.MM.yyyy HH:mm:ss.SSS} *{4}* [{2}] {3} {5}"
org.apache.sling.commons.log.names="com.my.package.other"

但是来自com.my.package.other的日志永远不会进入系统日志。

如果我将此行添加到我的logback.xml:

<logger name="com.my.package.other" level="INFO"/>

然后在/ system / console / slinglog上我可以看到记录器com.my.package.other不是附加的。

那么如何使用org.apache.sling.commons.log.LogManager.factory配置的日志作为附加记录器呢?

提前致谢!

2 个答案:

答案 0 :(得分:0)

使用此隐藏属性可以解决问题:https://github.com/apache/sling/blob/43528d39840cdf011dea5b2768686cc96ee3326e/bundles/commons/log/src/main/java/org/apache/sling/commons/log/logback/internal/LogConfigManager.java#L71

不幸的是它无法在OSGi控制台上配置(没有字段),所以我必须在osgi:config node上配置它。

答案 1 :(得分:0)

“不幸的是,它无法在OSGi控制台上配置(无字段)。”

您无法通过Felix控制台设置隐藏属性。但是他们可以使用sling设置:OsgiConfig节点(http://sling.apache.org/site/jcr-installer-provider.html