Thanks for the notice, however it didn't fix the problem either. After going through everything again, I came up with this as the minimal configuration required to keep everything running: slf4j logback jcl-over-slf4j log4j (can't use log4j-over-slf4j, since the springframework still uses the Appender class, which isn't defined in the bridge)
Now the strange thing: it actually does work when I execute the code for retrieving the log's name straight after entering main(). Executing the code somewhere later (this is a fairly complex project), results in the mentioned ClassCastException. Any ideas where this could come from? On Sun, Apr 3, 2011 at 10:52 PM, David Roussel <[email protected]>wrote: > 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 <[email protected]> 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 <[email protected] >>> <mailto:[email protected]>> 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:*[email protected] >>> <mailto:[email protected]> >>> [mailto:[email protected] >>> <mailto:[email protected]>] *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 >>> <[email protected] >>> <mailto:[email protected]>> 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 >>> <[email protected] >>> <mailto:[email protected]>> 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 >>> <[email protected] <mailto:[email protected]>> >>> >>> 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 >>> <[email protected] >>> <mailto:[email protected]>> 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 >> [email protected] >> http://qos.ch/mailman/listinfo/logback-user >> > > _______________________________________________ > Logback-user mailing list > [email protected] > http://qos.ch/mailman/listinfo/logback-user > > > > _______________________________________________ > Logback-user mailing list > [email protected] > http://qos.ch/mailman/listinfo/logback-user > >
_______________________________________________ Logback-user mailing list [email protected] http://qos.ch/mailman/listinfo/logback-user
