django-eventlog在Django模型中存储事件消息。
项目描述
📖 完整文档: https://barttc.github.io/django-eventlog/
兼容性矩阵
Py/Dj | 3.8 | 3.9 | 3.10 | 3.11 | 3.12 |
---|---|---|---|---|---|
3.2 (LTS) | ✓ | ✓ | ✓ | ✓ | ✓ |
4.0 | ✓ | ✓ | ✓ | ✓ | ✓ |
4.1 | ✓ | ✓ | ✓ | ✓ | ✓ |
4.2 (LTS) | ✓ | ✓ | ✓ | ✓ | ✓ |
5.0 | — | — | ✓ | ✓ | ✓ |
5.1 | — | — | ✓ | ✓ | ✓ |
django-eventlog
django-eventlog是一个非常简单的日志记录器,您可以使用它来跟踪代码中的某些操作。事件存储在Django模型中,并在Django Admin中查看。
使用示例
from eventlog import EventGroup
e = EventGroup() # Start a new Event Group
e.info('About to send 1000 mails.', # Trigger an Event
initiator='Mailer Daemon')
try:
# ... sending 1000 mails
e.info('All emails sent!', # Trigger an Event in the same group,
initiator='Mailer Daemon') # so they are combined in the admin.
except Exception:
e.error('There was an error sending the emails.',
initiator='Mailer Daemon')
您可以通过指定组名来重用事件组,并附加可选数据。数据必须是JSON可序列化的。
from eventlog import EventGroup
def purchase():
e = EventGroup(group_id=f"Order {self.order.pk}")
e.info("Sent order to Shopify", data={"items": [1, 2, 3]})
def subscribe_newsletter():
e = EventGroup(group_id=f"Order {self.order.pk}")
e.info("User subscribed to newsletter on checkout", data={"email": "user@example.com"})
事件可以按“事件组”分组,当在管理界面中悬停于其中一个项目时,同一组中的所有事件都会突出显示
事件的详细信息视图将列出此组中的所有其他事件,以便您可以跟踪进度
虽然看起来相似,但它并不是要替代您的常规Python logging
功能,而是要补充它。
django-eventlog将其数据存储在常规数据库模型中,因此每个日志条目都会触发SQL插入。因此,您在使用它时应小心,特别是在高性能和/或高容量环境中。
变更日志
2.2.1 (2024-09-02)
- Django 5.1支持
2.2 (2024-06-16)
- 小错误修复
- 现在数据库的字段“group”使用了数据库索引。
2.1 (2024-03-20)
- 现在可以通过AppConfig指定随机分组ID的格式和值。
- 对事件模型进行了各种改进,使其可以通过AppConfig进行交换。
- 将开发工具从Pipenv切换到Poetry。
2.0 (2024-03-10)
-
整体测试和代码重构。
-
现在使用MKDocs进行文档编写。
-
管理员的更改表单中的时间轴现在支持天数和小时数的延迟,而不仅仅是分钟。
-
不兼容向后:移除了未记录的
Event.objects.purge()
查询集方法。 -
不兼容向后:应用配置中定义的事件类型列表现在通过Python数据类设置,而不是字典。迁移是直接的。
event_types = { "info": { "label": _("Info"), "color": None, "bgcolor": None, }, "warning": { "label": _("Warning"), "color": None, "bgcolor": None, }, # ... }
现在字典是
EventTypeList
的EventType
数据类。from django.utils.translation import gettext_lazy as _ from eventlog.datastructures import EventType, EventTypeList # List of event types to be used in events. A list of `EventType` classes event_types = EventTypeList( EventType(name="info", label=_("Info")), EventType(name="warning", label=_("Warning")), EventType(name="error", label=_("Error"), color="red"), EventType(name="critical", label=_("Critical"), color="white", bgcolor="red"), )
只有在你之前覆盖了事件类型属性时,才需要做这个更改。
1.5 (2024-03-08)
- 事件可以附加可选的、可序列化为JSON的数据。
- 修复了暗黑模式的颜色。
- 各种管理界面改进。
1.4 (2024-03-05)
- 事件组现在可以使用任意名称而不是UUID。
- 事件评论是一个文本字段。
- 修复了与AutoFields相关的潜在迁移警告。
1.3 (2023-10-04)
- Python 3.12兼容性。
- Django 5.0支持。
- 类型注解。
1.2 (2023-04-28)
- Python 3.7到3.11兼容性。
- Django 3.2到4.2支持。
1.1 (2018-05-11)
- 添加了手动设置组ID的能力,使EventGroup对象可以通过线程重复使用。
1.0 (2018-02-13)
- 生产就绪的1.0版本。
- 详情管理视图现在显示具有注解延迟的组中所有事件,因此您可以看到组的进度。
0.9 (2018-02-13)
- 初始版本。
- Django 1.8到2.0兼容性。
- Python 2.7到3.6兼容性。
项目详情
下载文件
下载您平台的文件。如果您不确定选择哪个,请了解有关安装包的更多信息。
源分布
django_eventlog-2.2.1.tar.gz (16.9 kB 查看哈希)
构建分布
django_eventlog-2.2.1-py3-none-any.whl (19.3 kB 查看哈希)
关闭
django_eventlog-2.2.1.tar.gz的哈希
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 94f15fe4e7da319e8620824628d39d2f33ed97827086ba4fcf534496ce024129 |
|
MD5 | df46e5cfa42234c02b40bccb5cbd33f2 |
|
BLAKE2b-256 | 65af85a3563b4501b21912e98c373b9884d19bc5dff729490adff8dded614f50 |