Django的ECS日志格式化程序
django-log-formatter-ecs的Python项目详细描述
库将Django日志格式化为ECS格式。在
https://www.elastic.co/guide/en/ecs/current/index.html
到该格式的映射不完整,已尽最大努力在Django和ECS之间创建逻辑字段映射。在
如果需要修改映射,可以实现自定义格式化程序(见下文)。在
安装
pipinstalldjango-log-formatter-ecs
使用
在Django日志记录配置中使用:
^{pr2}$依赖关系
此包用于kubi_ecs_loggerhttps://github.com/kumina/kubi_ecs_logger进行基本ecs格式化
此包使用Django IPware https://github.com/un33k/django-ipware进行IP地址捕获。在
此包与django-user_agentshttps://pypi.org/project/django-user-agents/兼容,使用该软件包时,将增强记录的用户代理信息。在
设置
DLFE_APP_NAME
-用于定义应记录的应用程序名称。在
DLFE_LOG_SENSITIVE_USER_DATA
-格式化程序检查此设置以查看是否应记录用户信息。如果未设置为true,则只记录用户的id。在
DLFE_ZIPKIN_HEADERS
-用于定义自定义zipkin头,默认值为("X-B3-TraceId" "X-B3-SpanId")
记录的Django配置文件通过运行以下命令确定:
os.getenv('DJANGO_SETTINGS_MODULE')
格式化程序类
ECS_FORMATTERS={"root":ECSSystemFormatter,"django.request":ECSRequestFormatter,"django.db.backends":ECSSystemFormatter,}
其他记录器的默认类是:
ECSSystemFormatter
创建自定义格式化程序
如果您想创建自己的ECS格式化程序,可以从ECSSystemFormatter继承并调用_get_event_base获取基级日志数据,用于扩充:
classECSSystemFormatter(ECSFormatterBase):defget_event(self):logger_event=self._get_event_base()# Customise logger eventreturnlogger_event
测试
$ pip install -r requirements.txt $ tox
- 项目
标签: