[logback-user] Retrieving the log filenames
David Roussel
nabble at diroussel.xsmail.com
Sun Apr 3 22:52:36 CEST 2011
You probably don't want commons logging on your classpath. See here: http://www.slf4j.org/legacy.html
On 29 Mar 2011, at 13:53, Clemens Siebler wrote:
> Thanks Ceki, that could be the issue. I currently have a bunch of jars in my classpath, that all have to do with logging:
>
> commons-logging-api.jar
> commons-logging.jar
> log4j.jar
> logback-classic-0.9.21.jar
> logback-core-0.9.21.jar
> slf4j-api-1.6.1.jar
>
> I use Jetty+Spring Framework and the latter one requires Log4j and the commons-logging jars. The part of the application that I wrote, only uses Logback+Slf4j. Any ideas how to get away with this?
>
>
> On Tue, Mar 29, 2011 at 2:32 PM, Ceki Gulcu <ceki at qos.ch> wrote:
> Hello Clemens,
>
> Lance's suggestion is almost certaint on target. Do check your classpath to see if there are multiple instances of logback-classic lying around.
> --
> Ceki
>
> On 29.03.2011 14:13, Clemens Siebler wrote:
> Thanks for the hint Lance! I feel like this could be the issue. However,
> I haven't managed to actually find a solution to it. I tried starting my
> application with -verbose:class, but I can only see one entry of:
> [Loaded ch.qos.logback.classic.LoggerContext from
> file:/yyy/logback-classic-0.9.21.jar]. I suppose there should be
> multiple of these, if that actually is the problem? Thanks for your help!
>
>
> On Fri, Mar 25, 2011 at 4:54 PM, Lance White <lance.white at logicscope.com
> <mailto:lance.white at logicscope.com>> wrote:
>
> >> However, when I try to use this code outside of my test
> environement, I get the following Exception on the first line:
> >> java.lang.ClassCastException:
> ch.qos.logback.classic.LoggerContext cannot be cast to
> ch.qos.logback.classic.LoggerContext
>
> This is usually a multiple classloader problem.
>
> Lance
>
> *From:*logback-user-bounces at qos.ch
> <mailto:logback-user-bounces at qos.ch>
> [mailto:logback-user-bounces at qos.ch
> <mailto:logback-user-bounces at qos.ch>] *On Behalf Of *Clemens Siebler
> *Sent:* 24 March 2011 16:16
> *To:* logback users list
> *Subject:* Re: [logback-user] Retrieving the log filenames
>
> Ok, I figured out how to get at least the base logfile:
> LoggerContext ctx = (LoggerContext)
> LoggerFactory.getILoggerFactory();
> for (Logger l : ctx.getLoggerList()) {
> ch.qos.logback.classic.Logger log =
> (ch.qos.logback.classic.Logger) l;
> Iterator<Appender<ILoggingEvent>> it =
> log.iteratorForAppenders();
> while (it.hasNext()) {
> Appender<ILoggingEvent> ap = it.next();
> if (ap instanceof FileAppender<?> || ap instanceof
> RollingFileAppender<?>) {
> FileAppender<?> fileAppender = (FileAppender<?>)ap;
> System.out.println(fileAppender.getFile());
> }
> }
> }
>
> However, when I try to use this code outside of my test
> environement, I get the following Exception on the first line:
> java.lang.ClassCastException: ch.qos.logback.classic.LoggerContext
> cannot be cast to ch.qos.logback.classic.LoggerContext
>
> Any ideas? I'm currently using Jetty, slf4j and logback. However, it
> seems that there are still some dependencies on log4j in Jetty that
> I can't get rid of...
>
> On Tue, Mar 22, 2011 at 10:23 AM, Clemens Siebler
> <clemens.siebler at googlemail.com
> <mailto:clemens.siebler at googlemail.com>> wrote:
>
> As far as log4j goes, the getAppender function can be used. However,
> I have not managed to get this one working for logback. Any ideas?
>
> On Mon, Mar 21, 2011 at 3:42 PM, Clemens Siebler
> <clemens.siebler at googlemail.com
> <mailto:clemens.siebler at googlemail.com>> wrote:
>
> Let's assume the user only changes the logging levels/filter during
> runtime, nothing else.
>
> On Mon, Mar 21, 2011 at 3:32 PM, David Roussel
> <nabble at diroussel.xsmail.com <mailto:nabble at diroussel.xsmail.com>>
>
> wrote:
>
> Would a change notifier be told of the new filename? I'm not sure,
> but it's worth a check.
>
>
> On 21 Mar 2011, at 13:56, Clemens Siebler
> <clemens.siebler at googlemail.com
> <mailto:clemens.siebler at googlemail.com>> wrote:
>
> > Hi all,
> >
> > I'm currently using Logback (SLF4J) with a TimeBasedRollingPolicy
> defined in logback.xml. Everything works fine, however, I'd like to
> retrieve the filenames of the current logging session since the
> application started. The user can obviously change the log filenames
> and policies in logback.xml, so I don't want them hardcoded in the
> source. My goal is to retrieve these filenames straight within Java
> in order to do some more processing with them. Is there any
> possibility in logback/slf4j to retrieve those names?
> >
> > I currently aquire the logger via:
> > Logger logger = LoggerFactory.getLogger(Test.class);
> >
> > but obviously, this Logger object in particular doesn't provide
> such functionality. Any ideas?
> >
> > Thanks in advance,
> > Clemens
>
>
> _______________________________________________
> Logback-user mailing list
> Logback-user at qos.ch
> http://qos.ch/mailman/listinfo/logback-user
>
> _______________________________________________
> Logback-user mailing list
> Logback-user at qos.ch
> http://qos.ch/mailman/listinfo/logback-user
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://qos.ch/pipermail/logback-user/attachments/20110403/fee26e43/attachment-0001.html>
More information about the Logback-user
mailing list