Django中使用logging模块
Django中使用logging模块在web应用中记录页面访问情况,在jsp里有filter,
在Django里有middleware。
下面的例子就是在中间件里记录页面访问情况。
settings.py
# Django settings for testsite project.import loggingDEBUG = True# DEBUG = FalseTEMPLATE_DEBUG = DEBUGADMINS = ( # ('Your Name', 'your_email@domain.com'),)MANAGERS = ADMINSDATABASE_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.htmlLANGUAGE_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 loggingclass 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
页:
[1]