[logback-user] Retrieving the log filenames

Clemens Siebler clemens.siebler at googlemail.com
Tue Mar 29 14:53:49 CEST 2011


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
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://qos.ch/pipermail/logback-user/attachments/20110329/22978606/attachment-0001.html>


More information about the Logback-user mailing list