001/*
002 * The contents of this file are subject to the license and copyright
003 * detailed in the LICENSE and NOTICE files at the root of the source
004 * tree.
005 */
006package org.fcrepo.camel.common;
007
008import org.apache.camel.impl.engine.DefaultTracer;
009import org.slf4j.Logger;
010
011/**
012 * A test tracer for logging camel routes under our control.
013 * @author whikloj
014 *
015 * To use, before adapting the context add camelContext.setTracer(new TestTracer(logger));
016 * i.e.
017 *  final Logger LOGGER = LoggerFactory.getLogger(FcrepoSolrIndexer.class);
018 *  camelContext.setTracer(new TestTracer(LOGGER));
019 *  final var context = camelContext.adapt(ModelCamelContext.class);
020 *  AdviceWith.adviceWith(context, "FcrepoSolrIndexer", a -%lt; {
021 */
022public class TestTracer extends DefaultTracer {
023    private final Logger LOGGER;
024
025    public TestTracer(final Logger logger) {
026        super();
027        this.LOGGER = logger;
028        this.setTracePattern("%-4.4s [%-20.20s] [%-40.40s]");
029    }
030
031    @Override
032    protected void dumpTrace(final String out) {
033        LOGGER.info(out);
034    }
035}