WOW Iceberg! That should also work well for me. Thanks for sharing
your solution idea! I'm going to try it later today.
And I agree the 'uncomment me if you need app-logging' approach in
combination with the per-application-log-file seems also to me the
best (backward compatible, flexible).

Since I'm going to implement that for me anyway I'll send my code when
its finised...in case you want to improve it and/or Massimo wants to
incorporate it in future web2py versions.

On Jun 9, 9:02 pm, Iceberg <iceb...@21cn.com> wrote:
> Mmm, even after this log.py goes into models/log.py, I think the line:
>   logging=cache.ram(...)
> should be replaced by:
>   import logging
>   # logging=cache.ram(...) # Uncomment me if you need app-logging
>
> Because:
> 1. My log.py will cause the an incremental system.log which will
> eventually cram up your disk, hence it is not good for production
> site, unless you use RotatingFileHandler instead.
> 2. On GAE, you can not write to disk anyway, unless you use
> SMTPHandler or HTTPHandler etc.
>
> You get the idea. //shrug
>
> On Jun10, 2:45am, Iceberg <iceb...@21cn.com> wrote:
>
> > I am glad you like it. So every new app will have a models/log.py
> > soon?
>
> > BTW, I personally prefer this formatter, hope you do:
> >   "%(asctime)s %(levelname)s %(funcName)s():%(lineno)d %(message)s"
>
> > On Jun10, 2:22am, mdipierro <mdipie...@cs.depaul.edu> wrote:
>
> > > I think you nailed it! I would change the file name so that it resides
> > > inside the applicaitons folder:
>
> > > handler=logging.FileHandler(os.path.join(request.folder,"system.log"))
>
> > > we could also add a line in the admin to peek the log (like with
> > > sql.log).
>
> > > On Jun 9, 12:18 pm, Iceberg <iceb...@21cn.com> wrote:
>
> > > > request.log(message) would be nice, but all the advantages of standard
> > > > logging are too good to let go. So I came up with this little trick.
>
> > > > Add following codes inside model/log.py:
>
> > > >   def _init_log():
> > > >     import logging
> > > >     logger=logging.getLogger(request.application)
> > > >     logger.setLevel(logging.DEBUG)
> > > >     handler=logging.FileHandler("%s.log"%request.application)
> > > >     handler.setLevel(logging.DEBUG)
> > > >     handler.setFormatter(logging.Formatter(
> > > >       "%(levelname)s %(asctime)s %(funcName)s %(lineno)d %(message)
> > > > s"))
> > > >     logger.addHandler(handler)
> > > >     return logger
> > > >   logging=cache.ram('once',lambda:_init_log(),time_expire=99999999)
>
> > > > Then, in any of your controller, you can just do the usual:
> > > >   logging.warn('blah blah')
> > > > The only tricky point is you can not do this inside your controller:
> > > >   import logging
> > > > otherwise you lose the magic. ;-)
>
> > > > Besides, thanks for Hans for bringing up all the issue, which inspires
> > > > me to find the solution (at least for me) for this problem haunting me
> > > > for long time.
>
>
--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups 
"web2py Web Framework" group.
To post to this group, send email to web2py@googlegroups.com
To unsubscribe from this group, send email to 
web2py+unsubscr...@googlegroups.com
For more options, visit this group at 
http://groups.google.com/group/web2py?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to