log4django 是 django 应用的全功能日志平台。
项目描述
log4django 是 django 应用的全功能日志平台。该项目处于非常早期阶段,所以请原谅文档的简略。
需求
python 2.7
setup.py 中列出的包
安装
通过 pipy 安装或将其模块复制到您的项目或PYTHON_PATH中。
在您的 settings.py 文件中
将 log4django 添加到 INSTALLED_APPS。
INSTALLED_APPS = ( 'django.contrib.auth', 'django.contrib.contenttypes', 'django.contrib.sessions', 'django.contrib.sites', 'django.contrib.admin', 'django.contrib.sitemaps', 'debug_toolbar', 'log4django' )
将 log4django 添加到 CONTEXT_PROCESSORS。
TEMPLATE_CONTEXT_PROCESSORS = ( 'django.contrib.auth.context_processors.auth', 'django.core.context_processors.debug', 'django.core.context_processors.i18n', 'django.core.context_processors.media', 'django.core.context_processors.static', 'django.core.context_processors.tz', 'django.core.context_processors.request', 'django.contrib.messages.context_processors.messages', 'log4django.context_processors.log4django' )
将 log_request_id 添加到 MIDDLEWARE_CLASSES
MIDDLEWARE_CLASSES = ( 'log_request_id.middleware.RequestIDMiddleware', # ... other middleware goes here )
使用 log4django appender 配置您的日志。
LOGGING = { 'version': 1, 'disable_existing_loggers': False, 'filters': { 'request_id': { '()': 'log_request_id.filters.RequestIDFilter' } }, 'handlers': { 'log4django': { 'level': 'DEBUG', 'class': 'log4django.handlers.ModelHandler', # Synchronous log creations. 'filters': ['request_id'] }, 'log4django_async': { 'level': 'DEBUG', 'class': 'log4django.handlers.GearmanHandler', # Asynchronous log creations, doesn't block. 'filters': ['request_id'] } }, 'loggers': { '': { 'handlers': ['log4django_async'], 'level': 'DEBUG' }, # South logger needs to be disabled, in order to be able to migrate log4django 'south': { 'handlers': ['null'], 'level': 'INFO', 'propagate': False } } }
将 log4django urls 添加到 ROOT_URLCONF。
urlpatterns = patterns('', ....your other patterns url(r'^', include('log4django.urls', namespace='log4django', app_name='log4django')), )
定义命名空间和 app_name 非常重要。Log4Django 在内部使用命名空间来避免 URL 名称冲突。
配置
django settings.py 常量具有默认值。
LOG4DJANGO_PAGE_TITLE = 'log4django' LOG4DJANGO_CONNECTION_NAME = 'default' LOG4DJANGO_DEFAULT_APP_ID = None # If you have only one app, put App.pk here LOG4DJANGO_GEARMAN_TASK_NAME = 'log4django_event' LOG4DJANGO_PAGE_SIZE = 100 # How many records to display on one page. LOG4DJANGO_PAGINATOR_RANGE = 15 # How many pages to show in pagination. LOG4DJANGO_EXTRA_DATA_INDENT = 4 # Extra data json indentation. LOG4DJANGO_AUTHENTICATION_PIPELINE', ( 'log4django.pipeline.authentication.is_logged', )) # Basic authentication 'LOG4DJANGO_PERSISTATION_PIPELINE', ( 'log4django.pipeline.process_bundle_data.persist_record', )) # Controlls how records are persisted. LOG4DJANGO_CSV_EXPORT_EXTRA_JSON_PATHS = tuple() # List of json paths to include in csv export. LOG4DJANGO_CSV_DOWNLOAD_FILE_NAME = 'log4django.csv'
异步运行
异步队列由 gearman 作业服务器管理(http://gearman.org/)。在您的日志配置中使用 log4django.handlers.GearmanHandler 作为处理程序类。这样,Web 请求线程不会被将大量日志记录保存到数据库后端的开销所阻塞,而是发送到异步队列。您还必须运行充当 gearman 工作员的管理命令,从队列中弹出日志记录并异步地将日志记录保存到数据库。
$ python manage.py log4django
开发环境设置
$ make bootstrap $ python manage.py test log4django $ python manage.py runserver
测试
在环境中测试
Linux Mint 15 Olivia 64位
python 2.7.4
python单元测试
运行测试
要运行测试,执行以下命令之一:
$ python manage.py test log4django
或者:
$ make test
项目详情
关闭
log4django-0.9.1.tar.gz 的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | e1a847e972a1be4566247381f514eb93a18d92dfdb252cc3847eba2c4df48858 |
|
MD5 | 7cc1b665671732839df1ea69915d97d4 |
|
BLAKE2b-256 | 8cdb8b4f6b1f2bd0cb2a44543c03239891eba07b8553a5bd3eaffe33b5bd1117 |