django拥有自己的admin页面,同时它有自己的一套日志管理结构。正常的日志存放在django_admin_log表中,查看日志可以直接在django的管理页面查看。然而,它的日志记录比较简单,且存放在数据库中。如何扩展他呢?
由于django的管理model,均采用类似方法:
class ApplicationAdmin(admin.ModelAdmin):
list_display = ('id','key','name', 'description', 'type','apphandler','argument','create','modified')
search_fields = ('key','name','description')
admin.site.register(Application,ApplicationAdmin)
实际的日志记录逻辑均在父类ModelAdmin中实现,具体在django.conrtrib.admin.options中。
def log_addition(self, request, object):
"""
Log that an object has been successfully added.
The default implementation creates an admin LogEntry object.
"""
from django.contrib.admin.models import LogEntry, ADDITION
LogEntry.objects.log_action(

Django内置的admin页面包含一套日志管理系统,日志信息存储在django_admin_log表中。虽然可以直接在admin页面查看,但其功能有限。要扩展日志功能,可以通过覆写或拦截ModelAdmin的方法,如在父类ModelAdmin的逻辑中进行修改。这样可以自定义日志消息,实现更复杂的日志记录。了解更多详情可参考Django官方文档和IBM DeveloperWorks的相关文章。
最低0.47元/天 解锁文章
836





