Mike,
instead of importing in your Web2py controller use
execfile('your_module.py')

In your module ...
try:
      # this variable is available in Web2Py
      # but raises an exception if run outside Web2Py
      # since its not defined
        request.env.web2py_version
      # put here your web2py related code...
        print 'code executed in Web2py %s' % request.env.web2py_version
except:
        # put here your not Web2Py related code
        print 'code NOT executed in Web2py environment'

#put here your general code
print 'this part is always executed'

Hans

On Jun 25, 10:40 pm, MikeEllis <michael.f.el...@gmail.com> wrote:
> This looks really useful. Thanks for writing it. I'm trying to import
> some existing python modules that have logging calls into a web2py
> app.  Just putting log.py into my models directory helps some, but I'm
> not seeing any messages from my existing modules with level lower than
> logging.ERROR. I am, however, getting lower level (down to
> logging.DEBUG) from the web2py framework.  I suspect it has something
> to do with the customized logger my modules are using.  I don't want
> to go through and comment out all the calls to my version of getLogger
> () because many of these modules are used by other code.  I'm
> wondering if there's a way for a python module to detect at runtime
> whether it's being imported from the web2py framework. I might then be
> able to make my customized logging setup do nothing when running under
> web2py.  Any suggestions?
>
> Thanks,
> Mike Ellus
>
> On Jun 25, 8:29 am, Hans <johann.scheibelho...@easytouch-edv.com>
> wrote:
>
> > Richard,
>
> > the following solution works for me in production without any
> > problems. I use it for periodic, unattended functions (cron). I've
> > send Massimo the code in case he wants to include it into  web2py or
> > make it available as optional add-on download.
>
> > Hans
>
> > '''
> > To use the per application log file with rotating file handler in
> > web2py you need to put this file (log.py) into your models folder. The
> > log
> > file itself is created in your_web2py_path/applications/
> > your_application/app.log
>
> > Writing into the log file from your controller works as follows:
> > def my_function():
> >    logging.debug('my function abc is starting')
> >    logging.error('huston we got a %s problem.' % 'major')
> >     return
>
> > Viewing the log file through your application works as follows:
> > def show_log():
> >     return get_log()
>
> > If required the GAE solution needs work.
> > A BIG thank you to Iceberg!
> > Feedback and usage is welcome ;-)
>
> > Important note: do *not* 'importlogging' in your controller if you
> > use log.py. its done for all your controllers already in the log.py
> > model and it would break the log.py magic.
> > '''
>
> > importlogging
>
> > def _init_log(level=logging.DEBUG,formatter="%(asctime)s %(levelname)s
> > %(funcName)s():%(lineno)d %(message)
> > s",filename='app.log',maxBytes=1024*1024,backupCount=2):
> >     import os,logging.handlers
> >     logger=logging.getLogger(request.application)
> >     logger.setLevel(level)
> >     if request.env.web2py_runtime_gae: # if running on Google App
> > Engine
> >         handler=logging.handlers.HTTPHandler(request.env.http_host,URL
> > (r=request,f='log')) # assuming there is an optional log action
> >     else:
> >         handler=logging.handlers.RotatingFileHandler(os.path.join
> > (request.folder,filename),maxBytes=maxBytes,backupCount=backupCount)
> >     handler.setLevel(level)
> >     handler.setFormatter(logging.Formatter(formatter))
> >     logger.addHandler(handler)
> >     logger.debug("web2py application %s starting" %
> > request.application)
> >     return logger
>
> > def get_log():
> >     try:
> >         f = open(logging.handlers[0].baseFilename, 'r')
> >         c = f.readlines()
> >         f.close()
> >         return {'log':TABLE(*[TR(str(item)) for item in c])}
> >     except:
> >         return ()
>
> > logging=cache.ram('mylog',lambda:_init_log(),time_expire=99999999)
>
>
--~--~---------~--~----~------------~-------~--~----~
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