@elephant111cdc是一个“更改数据捕获”功能,您可以can enable on your DB,它会将所有数据修改的历史记录存储在数据库中。审计日志或活动日志是您保存用户在系统中所做工作的某种日志。如果您公开API,格式可能很简单,您只需将每个请求的请求正文和响应正文以及经过身份验证的用户的详细信息保存在某个地方(弹性文件、日志文件甚至数据库)。它可以帮助你追踪一切。例如
审核日志
import os
from logging.config import dictConfig
# Import Log Base Path From Config File
# The output should be something like this
# log_base_path = "/var/log/"
log_base_path = your_config.LOG_BASE_PATH
logging_dict = {
'version': 1,
'disable_existing_loggers': False,
'formatters': {
'JSONPERLINE': {
'format': '%(message)s'
},
},
'handlers': {
'audit_log': {
'level': 'DEBUG',
'class': 'logging.FileHandler',
'filename': os.path.join(log_base_path, 'audit_log.log'),
'formatter': 'JSONPERLINE'
}
},
'loggers': {
'audit_log': {
'handlers': ['audit_log'],
'level': 'INFO'
}
}
}
dictConfig(logging_dict)
init.py(或您定义蓝图的任何地方)
@app.after_request
def after_request(response):
""" Logging all of the requests in JSON Per Line Format. """
audit_logger = logging.getLogger('inbound_requests')
audit_logger.info({
"datetime": datetime.datetime.now().isoformat(),
"user_ip": request.remote_addr,
"user_name": g.username, // get current authenticated user. you need to customize it based on your code
"method": request.method,
"request_url": request.path,
"response_status": response.status,
"request_referrer": request.referrer,
"request_user_agent": request.referrer,
"request_body": request.json,
"response_body": response.json
})
return response
您可以使用Flask中的日志库来实现这一点。 设置配置:
然后,无论何时需要记录事件,请使用:
@elephant111cdc是一个“更改数据捕获”功能,您可以can enable on your DB,它会将所有数据修改的历史记录存储在数据库中。审计日志或活动日志是您保存用户在系统中所做工作的某种日志。如果您公开API,格式可能很简单,您只需将每个请求的请求正文和响应正文以及经过身份验证的用户的详细信息保存在某个地方(弹性文件、日志文件甚至数据库)。它可以帮助你追踪一切。例如 审核日志
审核日志/活动日志格式弹性/MongoDB/LogFile
审计日志/活动日志MySQL格式
如何在Flask上启用审核日志/活动日志
要在烧瓶上启用审核日志,可以使用以下代码段:
logger_config.py
init.py(或您定义蓝图的任何地方)
相关问题 更多 >
编程相关推荐