You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@camel.apache.org by Echo <ah...@gmail.com> on 2011/07/18 19:11:48 UTC
Log into an additional file at Apache Karaf using DSL
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.
Re: Log into an additional file at Apache Karaf using DSL
Posted by Echo <ah...@gmail.com>.
It's just a step reaming for my goal .
Now it logs into karaf everything even when it goes to that processor that I
specified that to be logged into "new.log" .
@ "new.log" , it successfully logs but the log doesn't have the stack trace
like what it's been already logged into karaf.log
That's what has been logged into "new.log"
20:41:07,352 | INFO | qtp3901595-74 | new |
rg.apache.camel.processor.Logger 213 | 51 - org.apache.camel.camel-core -
2.6.0 | Hello NewLogger
--
View this message in context: http://camel.465427.n5.nabble.com/Log-into-an-additional-file-at-Apache-Karaf-using-DSL-tp4600390p4600626.html
Sent from the Camel Development mailing list archive at Nabble.com.
Re: Log into an additional file at Apache Karaf using DSL
Posted by Claus Ibsen <cl...@gmail.com>.
On Mon, Jul 18, 2011 at 8:27 PM, Echo <ah...@gmail.com> wrote:
> Hello ,
> Actually I have modified my code as I misunderstood u :
>
> log4j.rootLogger=INFO, out,sylk,osgi:VmLogAppender
>
> Now it logs everything on BOTH files .
> I just need when I log like the follwong from camel :
>
> process(doSmth).log(LoggingLevel.INFO,"new","Hello New Logger")
>
> JUST in that case to go and log into the new.log
>
I would assume you need to configure the category something like this:
log4j.logger.new=INFO, new
Where that last "new" is the appender name.
And the first "new" is the log category name used in the Java code.
> --
> View this message in context: http://camel.465427.n5.nabble.com/Log-into-an-additional-file-at-Apache-Karaf-using-DSL-tp4600390p4600588.html
> Sent from the Camel Development mailing list archive at Nabble.com.
>
--
Claus Ibsen
-----------------
FuseSource
Email: cibsen@fusesource.com
Web: http://fusesource.com
Twitter: davsclaus, fusenews
Blog: http://davsclaus.blogspot.com/
Author of Camel in Action: http://www.manning.com/ibsen/
Re: Log into an additional file at Apache Karaf using DSL
Posted by Echo <ah...@gmail.com>.
Hello ,
Actually I have modified my code as I misunderstood u :
log4j.rootLogger=INFO, out,sylk,osgi:VmLogAppender
Now it logs everything on BOTH files .
I just need when I log like the follwong from camel :
process(doSmth).log(LoggingLevel.INFO,"new","Hello New Logger")
JUST in that case to go and log into the new.log
--
View this message in context: http://camel.465427.n5.nabble.com/Log-into-an-additional-file-at-Apache-Karaf-using-DSL-tp4600390p4600588.html
Sent from the Camel Development mailing list archive at Nabble.com.
Re: Log into an additional file at Apache Karaf using DSL
Posted by Echo <ah...@gmail.com>.
That's the final org.ops4j.pax.logging.cfg after updating ur comments .
Now erverything logs into new.log .
I just need erverything to be logged into karaf.log .
Except for specific process that will only log into new.log
################################################################################
#
# 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
# New File appender
log4j.rootLogger=INFO,new
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
# 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
--
View this message in context: http://camel.465427.n5.nabble.com/Log-into-an-additional-file-at-Apache-Karaf-using-DSL-tp4600390p4600564.html
Sent from the Camel Development mailing list archive at Nabble.com.
Re: Log into an additional file at Apache Karaf using DSL
Posted by Łukasz Dywicki <lu...@code-house.org>.
You don need second appender - osgi:VmLogAppender if you wish store messages only in one place. Second appender is unecessary to use first.
> I have already made the first step :
>
> 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
>
> Regarding the 2nd Step :
> Is that what u meant :
>
> log4j.rootLogger=INFO,new, osgi:VmLogAppender
>
>
>
> --
> View this message in context: http://camel.465427.n5.nabble.com/Log-into-an-additional-file-at-Apache-Karaf-using-DSL-tp4600390p4600498.html
> Sent from the Camel Development mailing list archive at Nabble.com.
Re: Log into an additional file at Apache Karaf using DSL
Posted by Echo <ah...@gmail.com>.
I have already made the first step :
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
Regarding the 2nd Step :
Is that what u meant :
log4j.rootLogger=INFO,new, osgi:VmLogAppender
--
View this message in context: http://camel.465427.n5.nabble.com/Log-into-an-additional-file-at-Apache-Karaf-using-DSL-tp4600390p4600498.html
Sent from the Camel Development mailing list archive at Nabble.com.
Re: Log into an additional file at Apache Karaf using DSL
Posted by Łukasz Dywicki <lu...@code-house.org>.
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.