Code source de mathenjeu.apps.common.log_app

# -*- coding: utf-8 -*-
"""
Starts an application.


:githublink:`%|py|6`
"""
from lightmlrestapi.mlapp.base_logging import BaseLogging  # pylint: disable=C0411


[docs]class LogApp(BaseLogging): """ Defines methods to easily log information for a web application. The function *fct_session* returns information about the session whatever it is as a dictionary. :githublink:`%|py|14` """
[docs] def __init__(self, folder='.', secret_log=None, fct_session=None, **kwargs): """ :param fct_session: function to return information about a session :param secret_log: to encrypt log (None to ignore) :param folder: folder where to write the logs (None to disable the logging) :param kwargs: additional parameters for :epkg:`BaseLogging` :githublink:`%|py|22` """ BaseLogging.__init__(self, secret=secret_log, folder=folder, **kwargs) self.get_session = fct_session
[docs] def log_any(self, tag, msg, request, session=None, **data): """ Logs information. :param tag: tag (to filter rows in logs) :param msg: event kind :param request: request :param session: information about the session :param data: addition data :githublink:`%|py|35` """ if not session and self.get_session: session = self.get_session(request) client = request["client"] log = dict(msg=msg, session=session, client=client) log.update(data) self.info(tag, log)
[docs] def log_event(self, msg, request, session=None, **data): """ Logs information about events. :param msg: event kind :param request: request :param session: information about the session :param data: addition data :githublink:`%|py|51` """ if not session and self.get_session: session = self.get_session(request) self.log_any('[DATA]', msg, request, session=session, **data)