Ticket #12012: settings.py

File settings.py, 4.6 KB (added by Vinay Sajip, 13 years ago)

Improved settings.py for use with patch in 12012-r11624.diff

Line 
1# Django settings for logtest project.
2
3DEBUG = True
4TEMPLATE_DEBUG = DEBUG
5
6ADMINS = (
7    # ('Your Name', 'your_email@domain.com'),
8)
9
10MANAGERS = ADMINS
11
12#DATABASE_ENGINE = 'sqlite3'           # 'postgresql_psycopg2', 'postgresql', 'mysql', 'sqlite3' or 'oracle'.
13#DATABASE_NAME = 'logtest.db'             # Or path to database file if using sqlite3.
14DATABASE_ENGINE = 'postgresql'           # 'postgresql_psycopg2', 'postgresql', 'mysql', 'sqlite3' or 'oracle'.
15DATABASE_NAME = 'mathprob'             # Or path to database file if using sqlite3.
16DATABASE_USER = 'mathprob'             # Not used with sqlite3.
17DATABASE_PASSWORD = 'm4thpr0b'         # Not used with sqlite3.
18DATABASE_HOST = ''             # Set to empty string for localhost. Not used with sqlite3.
19DATABASE_PORT = ''             # Set to empty string for default. Not used with sqlite3.
20
21# Local time zone for this installation. Choices can be found here:
22# http://en.wikipedia.org/wiki/List_of_tz_zones_by_name
23# although not all choices may be available on all operating systems.
24# If running in a Windows environment this must be set to the same as your
25# system time zone.
26TIME_ZONE = 'Europe/London'
27
28# Language code for this installation. All choices can be found here:
29# http://www.i18nguy.com/unicode/language-identifiers.html
30LANGUAGE_CODE = 'en-gb'
31
32SITE_ID = 1
33
34# If you set this to False, Django will make some optimizations so as not
35# to load the internationalization machinery.
36USE_I18N = True
37
38# Absolute path to the directory that holds media.
39# Example: "/home/media/media.lawrence.com/"
40MEDIA_ROOT = ''
41
42# URL that handles the media served from MEDIA_ROOT. Make sure to use a
43# trailing slash if there is a path component (optional in other cases).
44# Examples: "http://media.lawrence.com", "http://example.com/media/"
45MEDIA_URL = ''
46
47# URL prefix for admin media -- CSS, JavaScript and images. Make sure to use a
48# trailing slash.
49# Examples: "http://foo.com/media/", "/media/".
50ADMIN_MEDIA_PREFIX = '/media/'
51
52# Make this unique, and don't share it with anybody.
53SECRET_KEY = '5pl!d=!iany87jxjkg8cycrkbsvr0dph4^wtp^dh4b6*3le-w='
54
55# List of callables that know how to import templates from various sources.
56TEMPLATE_LOADERS = (
57    'django.template.loaders.filesystem.load_template_source',
58    'django.template.loaders.app_directories.load_template_source',
59#     'django.template.loaders.eggs.load_template_source',
60)
61
62MIDDLEWARE_CLASSES = (
63    'django.middleware.common.CommonMiddleware',
64    'django.contrib.sessions.middleware.SessionMiddleware',
65    'django.contrib.auth.middleware.AuthenticationMiddleware',
66)
67
68ROOT_URLCONF = 'logtest.urls'
69
70TEMPLATE_DIRS = (
71    # Put strings here, like "/home/html/django_templates" or "C:/www/django/templates".
72    # Always use forward slashes, even on Windows.
73    # Don't forget to use absolute paths, not relative paths.
74)
75
76INSTALLED_APPS = (
77    'django.contrib.auth',
78    'django.contrib.contenttypes',
79    'django.contrib.sessions',
80    'django.contrib.sites',
81)
82
83import logging
84
85def init_logging():
86    #Configure root to write to file
87    logging.basicConfig(level=logging.DEBUG, filename='logtest.log',
88                        filemode='w', format='%(asctime)s %(levelname)-8s %(name)-13s %(message)s')
89    logger = logging.getLogger("logtest")
90    logger.setLevel(logging.INFO)
91    logger = logging.getLogger("logtest.foo")
92    logger.setLevel(logging.WARNING)
93    logger = logging.getLogger("logtest.bar")
94    logger.setLevel(logging.ERROR)
95
96def test_logging():
97    from random import choice
98    levels = (logging.DEBUG, logging.INFO, logging.WARNING,
99              logging.ERROR, logging.CRITICAL)
100    loggers = ('', 'logtest', 'logtest.foo', 'logtest.bar')
101    for i in xrange(1000):
102        level = choice(levels)
103        logger = logging.getLogger(choice(loggers))
104        logger.log(level, "Message #%d", i + 1)
105
106
107def listener(sender, *args, **kwargs):
108    logger = logging.getLogger("logtest")
109    logger.info("class_prepared listener called: %s", sender.__name__)
110
111def pre_model_callback():
112    from django.db.models.signals import class_prepared
113    logger = logging.getLogger("logtest")
114    logger.info("Adding listener for class_prepared...")
115    class_prepared.connect(listener)
116
117def post_model_callback():
118    from django.contrib.auth.models import User
119    logger = logging.getLogger("logtest")
120    try:
121        logger.info("ORM works: all users: %s" % ", ".join(["%(username)s (%(first_name)s %(last_name)s)" % u.__dict__ for u in User.objects.all()]))
122    except:
123        logger.exception("Unable to get all users")
124
125BOOTSTRAP_CALLBACKS = (
126    init_logging,
127    #test_logging,
128)
129
130PRE_MODEL_CALLBACKS = (
131    pre_model_callback,
132)
133
134POST_MODEL_CALLBACKS = (
135    post_model_callback,
136)
Back to Top