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 |