I have opened a bug in backlog JIRA on this issue, which contains a work
around for this exception.
People are encouraged to vote on this issue
http://jira.qos.ch/browse/LBCORE-171

Maxim.

On Wed, Oct 13, 2010 at 6:18 PM, Maxim Veksler <[email protected]> wrote:

> Hi Nacho,
>
> The this configuration of logback works for you?
>
> I've tried to do the same, with the following versions of
> logback: logback-classic-0.9.24.jar, logback-core-0.9.24.jar, 
> slf4j-api-1.6.1.jar
>
> With the following configuration of backlog.xml:
>
> cat WEB-INF/classes/logback.xml
> <configuration>
>  <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
>   <encoder>
>    <!-- <pattern>%-5level %logger{0} - %msg%n</pattern>  -->
>    <pattern>%-5level %logger{36} - %msg%n</pattern>
>
>   </encoder>
>   <filter class="ch.qos.logback.classic.filter.LevelFilter">
>    <level>ERROR</level>
>    <onMatch>DENY</onMatch>
>    <onMismatch>ACCEPT</onMismatch>
>   </filter>
>  </appender>
>
>  <appender name="STDERR" class="ch.qos.logback.core.ConsoleAppender">
>   <target>System.err</target>
>   <encoder>
>    <pattern>%-5level %logger{0} - %msg%n</pattern>
>   </encoder>
>   <filter class="ch.qos.logback.classic.filter.LevelFilter">
>    <level>ERROR</level>
>    <onMatch>ACCEPT</onMatch>
>    <onMismatch>DENY</onMismatch>
>   </filter>
>  </appender>
>
>   <root level="INFO">
>   <appender-ref ref="STDOUT" />
>   <appender-ref ref="STDERR" />
>  </root>
>
>
> And I'm getting the following exception when my code tries to create a new
> Logger:
>
> Failed to instantiate [ch.qos.logback.classic.LoggerContext]
> Reported exception:
> java.lang.NoClassDefFoundError: java.net.InetAddress is a restricted class.
> Please see the Google  App Engine developer's guide for more details.
>  at
> com.google.appengine.tools.development.agent.runtime.Runtime.reject(Runtime.java:51)
> at
> ch.qos.logback.core.util.ContextUtil.getLocalHostName(ContextUtil.java:30)
>  at
> ch.qos.logback.core.util.ContextUtil.addHostNameAsProperty(ContextUtil.java:39)
> at
> ch.qos.logback.classic.joran.action.ConfigurationAction.begin(ConfigurationAction.java:47)
>  at
> ch.qos.logback.core.joran.spi.Interpreter.callBeginAction(Interpreter.java:273)
> at
> ch.qos.logback.core.joran.spi.Interpreter.startElement(Interpreter.java:145)
>  at
> ch.qos.logback.core.joran.spi.Interpreter.startElement(Interpreter.java:127)
> at ch.qos.logback.core.joran.spi.EventPlayer.play(EventPlayer.java:40)
>  at ch.qos.logback.core.joran.spi.Interpreter.play(Interpreter.java:332)
> at
> ch.qos.logback.core.joran.GenericConfigurator.doConfigure(GenericConfigurator.java:126)
>  at
> ch.qos.logback.core.joran.GenericConfigurator.doConfigure(GenericConfigurator.java:93)
> at
> ch.qos.logback.core.joran.GenericConfigurator.doConfigure(GenericConfigurator.java:52)
>  at
> ch.qos.logback.classic.util.ContextInitializer.configureByResource(ContextInitializer.java:77)
> at
> ch.qos.logback.classic.util.ContextInitializer.autoConfig(ContextInitializer.java:150)
>  at org.slf4j.impl.StaticLoggerBinder.init(StaticLoggerBinder.java:85)
> at org.slf4j.impl.StaticLoggerBinder.<clinit>(StaticLoggerBinder.java:55)
>  at org.slf4j.LoggerFactory.bind(LoggerFactory.java:121)
> at org.slf4j.LoggerFactory.performInitialization(LoggerFactory.java:111)
>  at org.slf4j.LoggerFactory.getILoggerFactory(LoggerFactory.java:268)
> at org.slf4j.LoggerFactory.getLogger(LoggerFactory.java:241)
>  at org.slf4j.LoggerFactory.getLogger(LoggerFactory.java:254)
> at ..............<clinit>(.................)
>  at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
> at
> sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39)
>  at
> sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27)
> at java.lang.reflect.Constructor.newInstance(Constructor.java:513)
>  at java.lang.Class.newInstance0(Class.java:355)
> at java.lang.Class.newInstance(Class.java:308)
>  at org.mortbay.jetty.servlet.Holder.newInstance(Holder.java:153)
> at
> org.mortbay.jetty.servlet.ServletHolder.initServlet(ServletHolder.java:428)
>  at
> org.mortbay.jetty.servlet.ServletHolder.getServlet(ServletHolder.java:339)
> at org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java:487)
>  at
> org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1166)
> at
> com.google.appengine.api.blobstore.dev.ServeBlobFilter.doFilter(ServeBlobFilter.java:58)
>  at
> org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1157)
> at
> com.google.apphosting.utils.servlet.TransactionCleanupFilter.doFilter(TransactionCleanupFilter.java:43)
>  at
> org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1157)
> at
> com.google.appengine.tools.development.StaticFileFilter.doFilter(StaticFileFilter.java:122)
>  at
> org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1157)
> at org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:388)
>  at
> org.mortbay.jetty.security.SecurityHandler.handle(SecurityHandler.java:216)
> at org.mortbay.jetty.servlet.SessionHandler.handle(SessionHandler.java:182)
>  at
> org.mortbay.jetty.handler.ContextHandler.handle(ContextHandler.java:765)
> at org.mortbay.jetty.webapp.WebAppContext.handle(WebAppContext.java:418)
>  at
> com.google.apphosting.utils.jetty.DevAppEngineWebAppContext.handle(DevAppEngineWebAppContext.java:70)
> at org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:152)
>  at
> com.google.appengine.tools.development.JettyContainerService$ApiProxyHandler.handle(JettyContainerService.java:349)
> at org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:152)
>  at org.mortbay.jetty.Server.handle(Server.java:326)
> at org.mortbay.jetty.HttpConnection.handleRequest(HttpConnection.java:542)
>  at
> org.mortbay.jetty.HttpConnection$RequestHandler.headerComplete(HttpConnection.java:923)
> at org.mortbay.jetty.HttpParser.parseNext(HttpParser.java:547)
>  at org.mortbay.jetty.HttpParser.parseAvailable(HttpParser.java:212)
> at org.mortbay.jetty.HttpConnection.handle(HttpConnection.java:404)
>  at
> org.mortbay.io.nio.SelectChannelEndPoint.run(SelectChannelEndPoint.java:409)
> at
> org.mortbay.thread.QueuedThreadPool$PoolThread.run(QueuedThreadPool.java:582)
>
>
> Now, before I go dig any further into how to work around this, could you
> please share your experience with this issue?
>
> Thanks,
> Maxim.
>
>
> On Tue, Oct 12, 2010 at 11:45 AM, Nacho Coloma <[email protected]> wrote:
>
>> JUL has been reported as 60 times slower than other implementations
>> because of the way they log:
>> http://www.infoq.com/news/2007/08/logback
>>
>> Just configuring properly log4j/logback to log to System.err or
>> System.out should be enough to see messages properly in the AppEngine
>> console. In logback, it's something like this:
>>
>>        <appender name="STDOUT"
>> class="ch.qos.logback.core.ConsoleAppender">
>>                <encoder>
>>                        <pattern>%-5level %logger{0} - %msg%n
>>                        </pattern>
>>                </encoder>
>>                <filter class="ch.qos.logback.classic.filter.LevelFilter">
>>                        <level>ERROR</level>
>>                        <onMatch>DENY</onMatch>
>>                        <onMismatch>ACCEPT</onMismatch>
>>                </filter>
>>        </appender>
>>
>>        <appender name="STDERR"
>> class="ch.qos.logback.core.ConsoleAppender">
>>                <target>System.err</target>
>>                <encoder>
>>                        <pattern>%-5level %logger{0} - %msg%n
>>                        </pattern>
>>                </encoder>
>>                <filter class="ch.qos.logback.classic.filter.LevelFilter">
>>                        <level>ERROR</level>
>>                        <onMatch>ACCEPT</onMatch>
>>                        <onMismatch>DENY</onMismatch>
>>                </filter>
>>        </appender>
>>
>>        <root level="DEBUG">
>>                <appender-ref ref="STDOUT" />
>>                <appender-ref ref="STDERR" />
>>        </root>
>>
>> Then, you can use slf4j-jcl to redirect also your commons-logging
>> messages.
>>
>> On Oct 3, 6:14 pm, Eurig Jones <[email protected]> wrote:
>> > Hey,
>> >
>> > I've written a Log4j appender which passes on log4j severity levels to
>> > GAE's JUL framework so you can view your log4j events (or the events
>> > your chosen framework provides) if you need to.
>> >
>> > http://androidisland.blogspot.com/2010/10/gae-and-log4j-getting-them-.
>> ..
>> >
>> > This is a quick implementation of this Appender for me and so far it
>> > works, but I'd love to hear some feedback about what it doesn't do (or
>> > doesn't do properly) as I've not used it in anger.
>> >
>> > Regards,
>> > Eurig Jones
>>
>> --
>> You received this message because you are subscribed to the Google Groups
>> "Google App Engine for Java" group.
>> To post to this group, send email to
>> [email protected].
>> To unsubscribe from this group, send email to
>> [email protected]<google-appengine-java%[email protected]>
>> .
>> For more options, visit this group at
>> http://groups.google.com/group/google-appengine-java?hl=en.
>>
>>
>

-- 
You received this message because you are subscribed to the Google Groups 
"Google App Engine for Java" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to 
[email protected].
For more options, visit this group at 
http://groups.google.com/group/google-appengine-java?hl=en.

Reply via email to