You can use the RemoteLogger to send those log messages to the server and on
the server you can log to a file. The browser does not have direct file
system access.


   - In your .gwt.xml, turn on the RemoteLogger.
   - Log as normal using Log.debug() etc.
   - On the server configure log4j via gwt-log to log to a file.



On Fri, Jul 9, 2010 at 5:05 AM, alex <[email protected]
> wrote:

> Hi Fred,
>
> Ive a problem with clientside logging into a file.
> Nothing is getting logged into my file, but all of the client messages
> apearing on my console.
> I've defined both file and console appender in my log4j.xml.
>
> Im not sure if this is a gwt-lig  or a log4j problem.
> Maybe you can tell me.
>
> Thank you.
>
> I'm getting following error:
>
> log4j:WARN Error during default initialization
> java.lang.NoClassDefFoundError: java.io.FileOutputStream 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 org.apache.log4j.FileAppender.setFile(FileAppender.java:290)
>        at
> org.apache.log4j.RollingFileAppender.setFile(RollingFileAppender.java:
> 194)
>        at org.apache.log4j.FileAppender.activateOptions(FileAppender.java:
> 164)
>        at
> org.apache.log4j.config.PropertySetter.activate(PropertySetter.java:
> 257)
>        at
> org.apache.log4j.xml.DOMConfigurator.parseAppender(DOMConfigurator.java:
> 285)
>        at
>
> org.apache.log4j.xml.DOMConfigurator.findAppenderByName(DOMConfigurator.java:
> 171)
>        at
>
> org.apache.log4j.xml.DOMConfigurator.findAppenderByReference(DOMConfigurator.java:
> 184)
>        at
>
> org.apache.log4j.xml.DOMConfigurator.parseChildrenOfLoggerElement(DOMConfigurator.java:
> 502)
>        at
> org.apache.log4j.xml.DOMConfigurator.parseRoot(DOMConfigurator.java:
> 471)
>        at org.apache.log4j.xml.DOMConfigurator.parse(DOMConfigurator.java:
> 921)
>        at
> org.apache.log4j.xml.DOMConfigurator.doConfigure(DOMConfigurator.java:
> 790)
>        at
> org.apache.log4j.xml.DOMConfigurator.doConfigure(DOMConfigurator.java:
> 696)
>        at
>
> org.apache.log4j.helpers.OptionConverter.selectAndConfigure(OptionConverter.java:
> 471)
>        at org.apache.log4j.LogManager.<clinit>(LogManager.java:125)
>        at org.apache.log4j.Logger.getLogger(Logger.java:105)
>        at
>
> com.allen_sauer.gwt.log.server.ServerLogImplLog4J.<init>(ServerLogImplLog4J.java:
> 30)
>        at com.allen_sauer.gwt.log.client.Log.tryLog4J(Log.java:289)
>        at com.allen_sauer.gwt.log.client.Log.<clinit>(Log.java:58)
>        at
>
> com.allen_sauer.gwt.log.server.RemoteLoggerServiceImpl.log(RemoteLoggerServiceImpl.java:
> 38)
>        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
>        at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
>        at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
>        at java.lang.reflect.Method.invoke(Unknown Source)
>        at
>
> com.google.appengine.tools.development.agent.runtime.Runtime.invoke(Runtime.java:
> 100)
>        at
> com.google.gwt.user.server.rpc.RPC.invokeAndEncodeResponse(RPC.java:
> 562)
>        at
>
> com.google.gwt.user.server.rpc.RemoteServiceServlet.processCall(RemoteServiceServlet.java:
> 188)
>        at
>
> com.google.gwt.user.server.rpc.RemoteServiceServlet.processPost(RemoteServiceServlet.java:
> 224)
>        at
>
> com.google.gwt.user.server.rpc.AbstractRemoteServiceServlet.doPost(AbstractRemoteServiceServlet.java:
> 62)
>        at javax.servlet.http.HttpServlet.service(HttpServlet.java:713)
>        at javax.servlet.http.HttpServlet.service(HttpServlet.java:806)
>        at
> org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java:
> 511)
>        at org.mortbay.jetty.servlet.ServletHandler
> $CachedChain.doFilter(ServletHandler.java:1166)
>        at
>
> com.google.appengine.api.blobstore.dev.ServeBlobFilter.doFilter(ServeBlobFilter.java:
> 51)
>        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.content(HttpConnection.java:938)
>        at org.mortbay.jetty.HttpParser.parseNext(HttpParser.java:755)
>        at org.mortbay.jetty.HttpParser.parseAvailable(HttpParser.java:218)
>        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)
>
> --
> You received this message because you are subscribed to the Google Groups
> "gwt-log" group.
> To post to this group, send email to [email protected].
> To unsubscribe from this group, send email to
> [email protected]<gwt-log%[email protected]>
> .
> For more options, visit this group at
> http://groups.google.com/group/gwt-log?hl=en.
>
>


-- 
Fred Sauer
Developer Advocate
Google Inc.
1600 Amphitheatre Parkway
Mountain View, CA 94043
[email protected]

-- 
You received this message because you are subscribed to the Google Groups 
"gwt-log" 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/gwt-log?hl=en.

Reply via email to