title: Log into an additional file at Apache Karaf
body: <p>I have a system that uses both Apache Camel and Karaf.</p>
  
  <p>I need some specific processor  to log into a new log instead of the default one ,karaf.log.</p>
  
  <p>I have reached that there is a file called "org.ops4j.pax.logging.cfg" that is responsible for logging configuration .</p>
  
  <p>Here it's the file before I mess with it : </p>
  
  <pre><code>################################################################################
  #
  #    Licensed to the Apache Software Foundation (ASF) under one or more
  #    contributor license agreements.  See the NOTICE file distributed with
  #    this work for additional information regarding copyright ownership.
  #    The ASF licenses this file to You under the Apache License, Version 2.0
  #    (the "License"); you may not use this file except in compliance with
  #    the License.  You may obtain a copy of the License at
  #
  #       http://www.apache.org/licenses/LICENSE-2.0
  #
  #    Unless required by applicable law or agreed to in writing, software
  #    distributed under the License is distributed on an "AS IS" BASIS,
  #    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  #    See the License for the specific language governing permissions and
  #    limitations under the License.
  #
  ################################################################################
  
  # Root logger
  log4j.rootLogger=INFO, out, osgi:VmLogAppender
  log4j.throwableRenderer=org.apache.log4j.OsgiThrowableRenderer
  
  # CONSOLE appender not used by default
  log4j.appender.stdout=org.apache.log4j.ConsoleAppender
  log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
  log4j.appender.stdout.layout.ConversionPattern=%d{ABSOLUTE} | %-5.5p | %-16.16t | %-32.32c{1} | %-32.32C %4L | %X{bundle.id} - %X{bundle.name} - %X{bundle.version} | %m%n
  
  # File appender
  log4j.appender.out=org.apache.log4j.RollingFileAppender
  log4j.appender.out.layout=org.apache.log4j.PatternLayout
  log4j.appender.out.layout.ConversionPattern=%d{ABSOLUTE} | %-5.5p | %-16.16t | %-32.32c{1} | %-32.32C %4L | %X{bundle.id} - %X{bundle.name} - %X{bundle.version} | %m%n
  log4j.appender.out.file=${karaf.data}/log/karaf.log
  log4j.appender.out.append=true
  log4j.appender.out.maxFileSize=1MB
  log4j.appender.out.maxBackupIndex=10
  
  # Sift appender
  log4j.appender.sift=org.apache.log4j.sift.MDCSiftingAppender
  log4j.appender.sift.key=bundle.name
  log4j.appender.sift.default=karaf
  log4j.appender.sift.appender=org.apache.log4j.FileAppender
  log4j.appender.sift.appender.layout=org.apache.log4j.PatternLayout
  log4j.appender.sift.appender.layout.ConversionPattern=%d{ABSOLUTE} | %-5.5p | %-16.16t | %-32.32c{1} | %-32.32C %4L | %m%n
  log4j.appender.sift.appender.file=${karaf.data}/log/$\\{bundle.name\\}.log
  log4j.appender.sift.appender.append=true
  </code></pre>
  
  <p>Now I have added an extra File appender : </p>
  
  <pre><code># Additional File appender
  log4j.rootLogger=INFO, out, osgi:VmLogAppender  # I removed the first log4j.rootLogger    
  log4j.appender.new=org.apache.log4j.RollingFileAppender
  log4j.appender.new.layout=org.apache.log4j.PatternLayout
  log4j.appender.new.layout.ConversionPattern=%d{ABSOLUTE} | %-5.5p | %-16.16t | %-32.32c{1} | %-32.32C %4L | %X{bundle.id} - %X{bundle.name} - %X{bundle.version} | %m%n
  log4j.appender.new.file=${karaf.data}/log/new.log
  log4j.appender.new.append=true
  log4j.appender.new.maxFileSize=1MB
  log4j.appender.new.maxBackupIndex=10
  </code></pre>
  
  <p>And from Camel , I logged from DSL :</p>
  
  <pre><code>process(exceptionProcessor).
        process(doSmth).log(LoggingLevel.INFO,"new","That is a new file to log into")
  </code></pre>
  
  <p>The result now that it logs erverything on BOTH "new.log" &amp; "karaf.log" file .</p>
  
  <p>The question is : how could I log into"new.log" just in case a specific processor .
  Others will be logged into the karaf.log !!</p>