Hi,
For completeness for anyone else wanting to use the Docker logger
drivers....

Starting with
 -Dorg.apache.sling.commons.log.configurationFile=logtoconsole.xml
where  logtoconsole.xml contains [1], with 1 appender per file in log/*
matching the name redirects everything to stdout. The pattern can contain
tag to identify the source.
Unfortunately there doesn't appear to be a wildcard available on Logback to
override all possible loggers.

Thanks for your help.

Best Regards
Ian


1

<?xml version="1.0"?>
<configuration>

  <appender name="CONSOLE" class="ch.qos.logback.core.ConsoleAppender">
    <!-- encoders are assigned the type
         ch.qos.logback.classic.encoder.PatternLayoutEncoder by default -->
    <encoder>
      <pattern>%d{dd.MM.yyyy HH:mm:ss.SSS} *%level* [%thread] %logger
%message%n</pattern>
    </encoder>
  </appender>

  <appender name="/logs/error.log"
class="ch.qos.logback.core.ConsoleAppender">
     <encoder>
       <pattern>error.log %d %-5level %X{sling.userId:-NA} [%thread]
%logger{30} %marker- %msg %n</pattern>
     </encoder>
  </appender>

....

  <root level="info">
    <appender-ref ref="CONSOLE"/>
  </root>

<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/>
</configuration>



On 3 February 2016 at 13:15, Ian Boston <i...@tfd.co.uk> wrote:

> Hi,
> Thanks for the pointer, I'll give that a go.
> Best Regards
> Ian
>
> On 3 February 2016 at 13:09, Chetan Mehrotra <chetan.mehro...@gmail.com>
> wrote:
>
>> As of now you can attach a console appender to ROOT logger so as to
>> also redirect the logs to console but it would not be possible to
>> disable any other FileAppender. So both appender would remain active.
>>
>> There are ways to override the OSGi based appenders [1] but that would
>> be quite hacky as you would need to do it for each configured
>> appender!
>>
>> To support this case we would need to change the logic to provide such an
>> option
>>
>> Chetan Mehrotra
>> [1]
>> https://sling.apache.org/documentation/development/logging.html#configuring-osgi-appenders-in-the-logback-config
>>
>> On Wed, Feb 3, 2016 at 6:14 PM, Ian Boston <i...@tfd.co.uk> wrote:
>> > Hi,
>> > Is there a master switch in Sling which I can throw to make all logging
>> > appear on stdout regardless of the OSGi LogWriter configuration ?
>> Hopefully
>> > this is already documented.
>> >
>> > I know that sounds like a dumb thing to do. The stdout in question of a
>> > Docker container connected to a Docker logging driver that I can
>> forward to
>> > ELK via FluentD without ever touching the disk. I can categorise the
>> stream
>> > as it's written so I don't mind that the log lines from multiple
>> categories
>> > are interlaced as long as they are lines (including stack traces).
>> >
>> > I would rather treat the Sling instance (Docker container) as a black
>> box
>> > and not install a specific Logback or SLF4J Logging driver connecting
>> > directly to the ELK stack, as there are other applications running that
>> are
>> > black boxes.
>> >
>> > Best Regards
>> > ian
>>
>
>

Reply via email to