Django中使用logging模块
在web应用中记录页面访问情况,在jsp里有filter,
在Django里有middleware。
下面的例子就是在中间件里记录页面访问情况。
settings.py
# Django settings for testsite project.
import logging
DEBUG = True
# DEBUG = False
TEMPLATE_DEBUG = DEBUG
ADMINS = (
# ('Your Name', 'your_email@domain.com'),
)
MANAGERS = ADMINS
DATABASE_ENGINE = '' # 'postgresql_psycopg2', 'postgresql', 'mysql', 'sqlite3' or 'oracle'.
DATABASE_NAME = '' # Or path to database file if using sqlite3.
DATABASE_USER = '' # Not used with sqlite3.
DATABASE_PASSWORD = '' # Not used with sqlite3.
DATABASE_HOST = '' # Set to empty string for localhost. Not used with sqlite3.
DATABASE_PORT = '' # Set to empty string for default. Not used with sqlite3.
# Local time zone for this installation. Choices can be found here:
# http://en.wikipedia.org/wiki/List_of_tz_zones_by_name
# although not all choices may be available on all operating systems.
# If running in a Windows environment this must be set to the same as your
# system time zone.
TIME_ZONE = 'America/Chicago'
# Language code for this installation. All choices can be found here:
# http://www.i18nguy.com/unicode/language-identifiers.html
LANGUAGE_CODE = 'en-us'
SITE_ID = 1
# If you set this to False, Django will make some optimizations so as not
# to load the internationalization machinery.
USE_I18N = True
# Absolute path to the directory that holds media.
# Example: "/home/media/media.lawrence.com/"
MEDIA_ROOT = ''
# URL that handles the media served from MEDIA_ROOT. Make sure to use a
# trailing slash if there is a path component (optional in other cases).
# Examples: "http://media.lawrence.com", "http://example.com/media/"
MEDIA_URL = ''
# URL prefix for admin media -- CSS, JavaScript and images. Make sure to use a
# trailing slash.
# Examples: "http://foo.com/media/", "/media/".
ADMIN_MEDIA_PREFIX = '/media/'
# Make this unique, and don't share it with anybody.
SECRET_KEY = '!utms++9y)scz_(1fuwfi&e2z#%c=f(2ltg$b^zdo()mly)&6c'
# List of callables that know how to import templates from various sources.
TEMPLATE_LOADERS = (
'django.template.loaders.filesystem.load_template_source',
'django.template.loaders.app_directories.load_template_source',
# 'django.template.loaders.eggs.load_template_source',
)
MIDDLEWARE_CLASSES = (
'django.middleware.common.CommonMiddleware',
'django.contrib.sessions.middleware.SessionMiddleware',
'django.contrib.auth.middleware.AuthenticationMiddleware',
'middleware.QtsAuthenticationMiddleware',
'logmiddleware.QtsAuthenticationMiddleware',
)
ROOT_URLCONF = 'testsite.urls'
TEMPLATE_DIRS = (
# Put strings here, like "/home/html/django_templates" or "C:/www/django/templates".
# Always use forward slashes, even on Windows.
# Don't forget to use absolute paths, not relative paths.
#'./templates',
'E:/Python25/scripts/testsite/templates',
)
INSTALLED_APPS = (
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.sites',
)
logging.basicConfig(
level = logging.DEBUG,
#
format = '%(asctime)s %(levelname)s %(module)s.%(funcName)s Line:%(lineno)d %(message)s',
filename = 'filelog.log',
)
#print 'E:/Python25/scripts/testsite/templates',
logmiddleware.py
'''
Created on 2009-4-9
@author: Administrator
'''
from django.http import HttpResponseRedirect
from django.contrib.auth import SESSION_KEY
from urllib import quote
import logging
class QtsAuthenticationMiddleware(object):
def process_request(self, request):
#print request.path
logging.info("enter:" + request.path)
pass
def process_response(self, request, response):
logging.info("exit:" + request.path)
return response
分享到:
相关推荐
在这个例子中,我们无法看到具体的目录结构,但我们可以推测它应该包含Django logging配置的JSON相关模块,以及可能的示例、许可证文件和安装指南等。 综上所述,"django-logging-json"是一个专门为Django框架设计...
在Java开发中,我们经常使用log4j或logback这样的第三方日志库,而在Python的世界里,logging模块则提供了类似的功能。Django整合了Python的logging模块,使其在Web应用开发中更加方便。 首先,理解logging的工作...
此外,由于其基于Python标准库的logging模块,因此与Django的集成非常平滑,不会引入额外的复杂性。 总的来说,`django_splunk_logging`是Django开发者的一个宝贵工具,它提供了与Splunk的日志集成,使得日志管理变...
Django使用Python内置的`logging`模块来实现这一功能。下面我们将深入探讨如何在Django中配置和使用`logging`。 首先,`logging`模块是线程安全的,这意味着在多线程环境下,它能有效地处理日志记录,避免数据冲突...
Django的日志配置基于Python的`logging`模块,允许开发者定义多个日志处理器和过滤器,以控制日志的输出方式和级别。然而,这些日志通常被打印到控制台或写入文件,对于大型分布式系统,这样的处理方式可能不够理想...
10. **项目集成**:将`django_models_logging`集成到Django项目中,需要在项目的`settings.py`文件中配置应用列表,并根据库的文档进行相应的设置。 通过这个资源,开发者能够快速获取并安装`django_models_logging...
#### Django与Logging模块 Django框架默认使用Python的内置`logging`模块来处理应用程序的日志记录需求。为了使Django应用能够有效地利用这一功能,我们需要进行一些必要的配置,并根据不同的场景调用合适的日志...
- Web应用常常需要发送电子邮件给用户,Django的文档中会涉及到如何配置和使用Django发送电子邮件的功能。 13. 日志记录(Logging) - 日志记录对于调试和监控Web应用非常关键,官方文档会描述如何配置和使用...
**Django** 是一个高度模块化且可扩展的 Python Web 框架,它鼓励快速开发并遵循 DRY(Don't Repeat Yourself)原则。**Django 1.6** 是该框架的一个版本,它在 2014 年发布,包含了一系列新功能和改进。 **Django ...
在Django中,可以使用`django.core.mail`模块来发送邮件,确保正确配置了邮件服务后,就可以通过编程方式触发邮件发送。 总结起来,Django日志和中间件的应用涉及到以下几个关键点: 1. 定制日志格式和配置处理器...
Django内置了日志模块,可以通过配置`LOGGING`设置来定制日志行为。在中间件中,我们可以使用`logger`模块记录每个请求的相关信息,如URL、HTTP方法、响应状态码等。 3. **Elasticsearch - 数据存储** Elastic...
在 Django 中,我们可以使用 `LOGGING` 设置来配置日志文件。日志文件是指记录应用程序的日志信息。 其他相关总结 在 Django 中,我们可以使用重定向来完成对应操作后,返回到某个指定的路径。我们也可以使用 `pk`...
Django提供了一个logging模块,我们可以配置它来记录应用的事件。在这个项目中,我们可能会创建自定义的日志处理器和记录器,以便在数据库中存储日志信息。 6. **模板系统**: Django的模板语言允许我们创建动态...
在Django框架中,`settings` 文件是项目的核心配置,它定义了项目的各种行为和特性。下面我们将深入探讨一些最佳实践和常见配置。 1. **DJANGO_SETTINGS_MODULE**: 这是一个环境变量,用于指示Python查找settings...
在Django中,日志模块基于Python标准库`logging`实现。它提供了一种灵活的日志处理机制,允许开发者自定义日志的级别、格式以及存储位置等。 ##### 2.2 日志级别 日志级别用于区分日志的重要性,Django支持以下几种...
9. 错误处理和日志记录:学习如何处理异常,设置错误页面,以及使用logging模块进行日志记录。 10. 测试与调试:编写单元测试,确保代码质量,学习使用Django自带的测试工具。 11. 部署与维护:了解服务器环境配置...