Para manter um log da nossa aplicação no web2py utilizaremos o módulo de logging da própria linguagem Python. Portanto, é possível encontrar mais detalhes na documentação do módulo.
O logging pode ser configurado a partir de um arquivo logging.conf, na raíz da pasta descompactada do web2py. Esse arquivo deve ser criado com as configurações de logging desejadas pelo usuário e, para isso, é prático utilizar o arquivo /examples/logging.example.com como base.
Por isso, copie o arquivo logging.example.com para a pasta raíz e altere seu nome para logging.conf.
[loggers]
keys = root,rocket,markdown,web2py,rewrite,cron,app,welcome,**seu_app**
# **seu_app** app handler
[**logger_seu_app**]
level=WARNING
qualname=web2py.app.**seu_app**
handlers=consoleHandler
propagate=0
Você pode criar novos handlers da maneira como especificada na documentação do módulo. Para utilizá-los é preciso especificar o nome dos handlers na lista de handlers do web2py.
[handlers]
keys=consoleHandler,messageBoxHandler,rotatingFileHandler,criadoPorVoceHandler
Os handlers utilizados por você devem ser configurados no seu campo específico. Configure o consoleHandler.
[handler_consoleHandler]
class=StreamHandler
level=DEBUG
formatter=simpleFormatter
args=(sys.stdout,)
O ideal é que o handler esteja em level WARNING em produção e DEBUG em desenvolvimento.
Agora, em um dos models da sua aplicação, importe o módulo logging e crie uma instância de logger informando o qualname do seu handler.
import logging
logger = logging.getLogger("web2py.app.seu_app")
logger.setLevel(logging.DEBUG)
É possível que o level no handler seja redefinido, utilizando o setLevel.
Utilize o logging na sua aplicação.
def index():
logger.debug("Rodando a página index.")
logger.info("Esse é um logger com level info.")
return dict()
As mensagens acima serão exibidas no console do seu sistema operacional ao executar a função index utilizando os levels especificados.