2014-10-22 5 views
0

Я установил этот пакет в CQ5.6.1Добавка конфигурации Logback для конфигурации журнала OSGi

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

Это хорошо работает, у меня есть проблема только с флагом аддитивности.

Если я добавляю конфигурацию Logging Logger Configuration (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"/> 

Тогда на/системы/консоли/slinglog я могу видеть, что регистратор com.my.package.other не является аддитивным.

Так как я могу использовать журналы, настроенные org.apache.sling.commons.log.LogManager.factory в качестве аддитивных регистраторов?

Заранее благодарен!

ответ

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: конфигурации узла.

0

«К сожалению, его невозможно настроить на консоли OSGi (без поля)».

Вы не можете установить скрытые свойства через консоль Felix. Но они могут быть установлены с помощью стропы: Узлы OsgiConfig (http://sling.apache.org/site/jcr-installer-provider.html)

+0

Я знаю это. Именно так я настроил регистраторы как аддитивные, хотя мне это не нравится. Любой может добавить новую конфигурацию журнала на консоли osgi, которая может нарушить ведение журнала регистрации ... – nerd

Смежные вопросы