My bundles were using different loggers. So created a logger category in the pax-logging as mentioned by JB.
Bengt's solution also looks interesting I will give it a try. On Thu, Jun 30, 2016 at 6:18 PM, Jean-Baptiste Onofré <j...@nanthrax.net> wrote: > Yes, it's what I said: create new sift appender. > > Regards > JB > > On 06/30/2016 02:33 PM, Bengt Rodehav wrote: > >> You can do this by using MDC combined with filters (I implemented that >> in Pax logging a few years back). >> >> E g if you use this root logger: >> >> log4j.rootLogger=INFO, stdout, info, error, bundle, context, osgi:* >> >> And you define the "bundle" log as follows: >> >> log4j.appender.bundle=org.apache.log4j.sift.MDCSiftingAppender >> log4j.appender.bundle.key=bundle.name <http://bundle.name> >> log4j.appender.bundle.default=karaf >> log4j.appender.bundle.appender=org.apache.log4j.RollingFileAppender >> log4j.appender.bundle.appender.MaxFileSize=1MB >> log4j.appender.bundle.appender.MaxBackupIndex=2 >> log4j.appender.bundle.appender.layout=org.apache.log4j.PatternLayout >> log4j.appender.bundle.appender.layout.ConversionPattern=%d{ISO8601} | >> %-5.5p | %-16.16t | %-32.32c{1} | %-32.32C %4L | %m%n >> log4j.appender.bundle.appender.file=${logdir}/bundles/$\\{bundle.name >> <http://bundle.name>\\}.log >> log4j.appender.bundle.appender.append=true >> log4j.appender.bundle.threshold=INFO >> >> You will end up with a separate log file per bundle (named with the >> bundle's name). I use a custom variable (${logdir}) to specify where to >> create the log file but you can do as you wish. In this case these log >> files will be at INFO level. >> >> Sometimes I want TRACE logging on a specific bundle. I can then do as >> follows: >> >> log4j.rootLogger=TRACE, stdout, info, error, bundle, context, osgi:*, >> bundle_trace >> >> log4j.appender.bundle_trace=org.apache.log4j.sift.MDCSiftingAppender >> log4j.appender.bundle_trace.key=bundle.name <http://bundle.name> >> log4j.appender.bundle_trace.default=karaf >> log4j.appender.bundle_trace.appender=org.apache.log4j.RollingFileAppender >> log4j.appender.bundle_trace.appender.MaxFileSize=10MB >> log4j.appender.bundle_trace.appender.MaxBackupIndex=2 >> log4j.appender.bundle_trace.appender.layout=org.apache.log4j.PatternLayout >> log4j.appender.bundle_trace.appender.layout.ConversionPattern=%d{ISO8601} >> | >> %-5.5p | %-16.16t | %-32.32c{1} | %-32.32C %4L | %m%n >> log4j.appender.bundle_trace.appender.file=${logdir}/bundles/trace/$\\{ >> bundle.name >> <http://bundle.name>\\}.log >> log4j.appender.bundle_trace.appender.append=true >> log4j.appender.bundle_trace.threshold=TRACE >> >> log4j.appender.bundle_trace.filter.a=org.apache.log4j.filter.MDCMatchFilter >> log4j.appender.bundle_trace.filter.a.exactMatch=false >> log4j.appender.bundle_trace.filter.a.keyToMatch=bundle.name >> <http://bundle.name> >> >> log4j.appender.bundle_trace.filter.a.valueToMatch=org.apache.aries.blueprint.core >> # DenyAllFilter should always be the last filter >> log4j.appender.bundle_trace.filter.z=org.apache.log4j.varia.DenyAllFilter >> >> In the above example I create a separate TRACE log for the bundle with >> the name "org.apache.aries.blueprint.core". >> >> It is also possible to configure custom logging for a particular camel >> context which we do in our integration platform based on Karaf and Camel. >> >> /Bengt >> >> >> >> >> >> >> >> >> >> >> 2016-06-30 13:59 GMT+02:00 Jean-Baptiste Onofré <j...@nanthrax.net >> <mailto:j...@nanthrax.net>>: >> >> Then it's different sift appenders that you have to define. >> >> Generally speaking, you don't need sift for what you want: if your >> bundles use different loggers, then, just create the logger category >> in the pax-logging config. >> >> Regards >> JB >> >> On 06/30/2016 01:56 PM, Debraj Manna wrote: >> >> >> Yeah if I enable sifting appender let's say with a config and >> add it to >> rootLogger >> >> log4j.appender.sift.threshold=DEBUG >> >> >> Then this will make log level DEBUGfor all bundles. I am trying >> to ask >> is let's say I have two bundles1& bundles2and I want bundle1 's >> log >> level to be DEBUGand bundle2log level to be ERROR. >> >> >> On Thu, Jun 30, 2016 at 2:12 PM, Jean-Baptiste Onofré >> <j...@nanthrax.net <mailto:j...@nanthrax.net> >> <mailto:j...@nanthrax.net <mailto:j...@nanthrax.net>>> wrote: >> >> Hi, >> >> I don't see the sift appender enable for the root logger. >> >> You should have: >> >> log4j.rootLogger=DEBUG, async, sift, osgi:* >> >> Regards >> JB >> >> On 06/30/2016 08:23 AM, Debraj Manna wrote: >> >> In |Karaf 3.0.5| running under |Servicemix 6.1.0| my >> |org.ops4j.pax.logging.cfg| looks like below:- >> >> |# Root logger log4j.rootLogger=DEBUG, async, osgi:* >> >> log4j.throwableRenderer=org.apache.log4j.OsgiThrowableRenderer # >> To >> avoid flooding the log when using DEBUG level on an ssh >> connection and >> doing log:tail >> >> log4j.logger.org.apache.sshd.server.channel.ChannelSession = INFO >> # >> 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{ISO8601} | >> %-5.5p | >> %-16.16t | %-32.32c{1} | %X{bundle.id >> <http://bundle.id> <http://bundle.id> >> <http://bundle.id>} - >> %X{bundle.name <http://bundle.name> >> <http://bundle.name> <http://bundle.name>} - >> %X{bundle.version} | %X | %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{ISO8601} >> | %-5.5p | >> %-16.16t | %-32.32c{1} | %X{bundle.id >> <http://bundle.id> <http://bundle.id> >> <http://bundle.id>} - >> %X{bundle.name <http://bundle.name> >> <http://bundle.name> <http://bundle.name>} - >> >> %X{bundle.version} | %X | %m%n >> log4j.appender.out.file=/tmp/servicemix.log >> log4j.appender.out.append=true >> log4j.appender.out.maxFileSize=1024MB >> log4j.appender.out.maxBackupIndex=10 # Sift appender >> >> log4j.appender.sift=org.apache.log4j.sift.MDCSiftingAppender >> log4j.appender.sift.key=bundle.name >> <http://bundle.name> <http://bundle.name> >> <http://bundle.name> >> log4j.appender.sift.default=servicemix >> >> log4j.appender.sift.appender=org.apache.log4j.FileAppender >> >> log4j.appender.sift.appender.layout=org.apache.log4j.PatternLayout >> >> log4j.appender.sift.appender.layout.ConversionPattern=%d{ISO8601} >> | >> %-5.5p | %-16.16t | %-32.32c{1} | %X | %m%n >> log4j.appender.sift.appender.file=/tmp/$\\{bundle.name >> <http://bundle.name> >> <http://bundle.name> >> <http://bundle.name>\\}.log >> log4j.appender.sift.appender.append=true # >> Async appender >> log4j.appender.async=org.apache.log4j.AsyncAppender >> log4j.appender.async.appenders=out| >> >> | >> >> Now this logger config is dumping Karaf's debug log as >> well >> whereas my >> intention is to |DEBUG| only a specific bundle. >> >> Can some one let me know if it is possible to set >> different log >> levels >> for different bundles? >> >> | >> >> | >> | >> >> >> -- >> Jean-Baptiste Onofré >> jbono...@apache.org <mailto:jbono...@apache.org> >> <mailto:jbono...@apache.org <mailto:jbono...@apache.org>> >> http://blog.nanthrax.net >> Talend - http://www.talend.com >> >> >> >> -- >> Jean-Baptiste Onofré >> jbono...@apache.org <mailto:jbono...@apache.org> >> http://blog.nanthrax.net >> Talend - http://www.talend.com >> >> >> > -- > Jean-Baptiste Onofré > jbono...@apache.org > http://blog.nanthrax.net > Talend - http://www.talend.com >