[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