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

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
如何使用java向dropup html/css添加项目   如何从java中的向量向量打印   Java Maven库项目模板   java使用atmosphere api还是直接使用grizzly?   java JComponent仅部分显示   如何将动态值传递给自定义注释,以从Java数据进行映射。性质   java破解已实现方法的返回类型的最佳方法?   java Netbeans在JFrame Gui布局中覆盖图像   spring java仅向登录用户显示注销按钮   java如何对com进行身份验证。谷歌。云bigquery。带有服务帐户的BigQuery`   java禁止空字符串参数和抛出RuntimeException以阻止方法继续的利弊   java分析项目中的所有JAR以获取版本和许可证信息   Java,数据库为什么要分配一个新对象,而我们可以直接将它放入数据库