operationlog 0.2.2
Operation Log
operation_log is used to record operation log for web api.
Features
Non-intrusive to record operation log
Requirements
Python 3.x
Getting started
install operation log
pip install operation-log
use record_operation_log decorator to wrap api function
from operation_log import Operator, record_operation_log
def get_operator() -> Operator:
return Operator(1, 'test_user')
@record_operation_log(get_operator, 'hello world')
async def hello(request):
return Response()
use record_operation_log decorator with context
import typing
from operation_log import Operator, record_operation_log
def get_operator() -> Operator:
return Operator(1, 'test_user')
def before_execute_context(request) -> typing.Dict:
return {'msg': 'hello old world'}
def after_execute_context(request) -> typing.Dict:
return {'msg': 'hello new world'}
@record_operation_log(
get_operator,
'hello {{ before_execute.msg }} {{ after_execute.msg }}',
before_execute_contexts=[before_execute_context],
after_execute_contexts=[after_execute_context]
)
async def hello(request):
return Response()
The context functions will receive params such as the execute function.
custom log writer
import logging
from operation_log import Operator, OperationLogWriter, OperationLog, record_operation_log
def get_operator() -> Operator:
return Operator(1, 'test_user')
class CustomOperationLogWriter(OperationLogWriter):
def write(self, operation_log: OperationLog):
logging.info(f'this is custom log writer {operation_log.text}')
@record_operation_log(
get_operator,
'hello world',
writer=CustomOperationLogWriter()
)
async def hello(request):
return Response()
If you want to save the operation log to the database, you can subclass the OperationLogWriter class and implement
your own write method.
For personal and professional use. You cannot resell or redistribute these repositories in their original state.
There are no reviews.