You need specific category settings. Karaf uses log4j as logging framework
wrapped by pax-logging service. To store log messages from any category follow
these steeps:
1. Create new appender (eg. file)
log4j.appender.file=org.apache.log4j.RollingFileAppender
log4j.appender.file.layout=org.apache.log4j.PatternLayout
log4j.appender.file.layout.ConversionPattern=%d{ABSOLUTE} | %-5.5p | %-16.16t |
%C | %-32.32C %4L | %m%n
log4j.appender.file.file=${karaf.data}/log/my-file.log
log4j.appender.file.append=true
log4j.appender.file.maxFileSize=1MB
log4j.appender.file.maxBackupIndex=10
2. Configure your category
log4j.category.some-category.name-with.dots = DEBUG, file
where file is appender name.
Regards,
Lukasz
> I have a system that uses both Apache Camel and Karaf.
>
> I need some specific processor to log into a new log instead of the default
> one ,karaf.log.
>
> I have reached that there is a file called "org.ops4j.pax.logging.cfg" that
> is responsible for logging configuration .
>
> Here it's the file before I mess with it :
>
>
> ################################################################################
>
> #
> # 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
>
>
>
>
> Now I have added an extra File appender :
>
> # Additional File appender
> log4j.rootLogger=INFO,new, osgi:VmLogAppender
> 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
>
>
> And from Camel , I logged from DSL :
>
> process(exceptionProcessor).
> process(doSmth).log(LoggingLevel.INFO,"new","That is a new file to log
> into")
> The result now that it logs erverything on the "new.log" file . Regarding
> the karaf.log , I got this :
>
> Jul 18, 2011 6:00:03 PM org.apache.karaf.main.SimpleFileLock lock
> INFO: locking
> The question is : how could I log into"new.log" just in case a specific
> processor . Others will be logged into the karaf.log !!
>
> --
> View this message in context:
> http://camel.465427.n5.nabble.com/Log-into-an-additional-file-at-Apache-Karaf-using-DSL-tp4600390p4600390.html
> Sent from the Camel Development mailing list archive at Nabble.com.