as title
I want to save my log into my database
this is my code in model folder
import logging, logging.handlers
import json
from DBSession import DBSession
class DatabaseHandler(logging.Handler):
def emit(self, record):
log_entry = self.format(record)
log_data = json.loads(log_entry)
log_message = log_data['@message']
log_level = log_data['@level']
log_task = log_data['@task_name']
db.fbbot_log.insert(log_task = log_task, log_level = log_level,
log_message = log_message)
class LogstashFormatter(logging.Formatter):
def __init__(self, task_name=None):
self.task_name = task_name
super(LogstashFormatter, self).__init__()
def format(self, record):
data = {'@message': record.msg,
'@level' : record.levelname
}
if self.task_name:
data['@task_name'] = self.task_name
return json.dumps(data)
def get_configured_logger(name):
logger = logging.getLogger(name)
if (len(logger.handlers) == 0):
# This logger has no handlers, so we can assume it hasn't yet been
configured
# (Configure logger)
handler = DatabaseHandler()
formatter = LogstashFormatter(name)
handler.setFormatter(formatter)
handler.setLevel(logging.INFO)
logger.addHandler(handler)
# Test entry:
logger.debug(name + ' logger created')
else:
# Test entry:
logger.debug(name + ' already exists')
return logger
# Assign application logger to a global var
logger = get_configured_logger(request.application)
and this is my controller/default.py
def index():
logger.error("w")
return 0
first time it can work,
and save log into database well
but second time when I visit the page
I get the error
<type 'exceptions.ValueError'> INSERT INTO
`fbbot_log`(`log_message`,`log_task`,`log_level`,`input_timestamp`) VALUES
('w','fbbot','ERROR','2017-12-24 03:09:24');
here is the table
db.define_table('fbbot_log',
Field('log_task', 'string'),
Field('log_level', 'string'),
Field('log_message', 'string'),
Field('input_timestamp', 'datetime', default =
datetime.now())
)
web2py 2.16.1-stable
Python 2.7.12
db is MYSQL
--
Resources:
- http://web2py.com
- http://web2py.com/book (Documentation)
- http://github.com/web2py/web2py (Source code)
- https://code.google.com/p/web2py/issues/list (Report Issues)
---
You received this message because you are subscribed to the Google Groups
"web2py-users" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
For more options, visit https://groups.google.com/d/optout.