Not sure but with above setup you might get duplicate logs as both appender if attached to same logger would write to console. A better way would be to use Logback Appender filter to filter out all message effectively disabling those appenders
<appender name="/logs/error.log" class="ch.qos.logback.core.ConsoleAppender"> <filter class="ch.qos.logback.classic.filter.LevelFilter"> <level>ALL</level> <onMatch>DENY</onMatch> <onMismatch>DENY</onMismatch> </filter> </appender> Chetan Mehrotra On Wed, Feb 3, 2016 at 9:34 PM, Ian Boston <i...@tfd.co.uk> wrote: > 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 >>> >> >>