#55 closed defect (wontfix)
add a logger to django
| Reported by: | James Zhu | Owned by: | Adrian Holovaty |
|---|---|---|---|
| Component: | Tools | Version: | |
| Severity: | normal | Keywords: | log |
| Cc: | Triage Stage: | Accepted | |
| Has patch: | no | Needs documentation: | no |
| Needs tests: | no | Patch needs improvement: | no |
| Easy pickings: | no | UI/UX: | no |
Description
insert the block into django.conf.settings file at line 32.
#python
a = me.SETTINGS_MODULE.split( '.' )
if 'settings' in a:
idx = a.index( 'settings' )
if idx > 0:
projname = a[idx-1]
projmod = __import__( projname , '', '', [''])
else:
projname = 'django'
import django as projmod
logdir = os.path.split( projmod.__file__ )[0] + os.sep + 'logs'
if not os.access( logdir , os.W_OK ):
raise 'Cannot write log file in dir: ' + logdir
import logging
logger = logging.getLogger( projname )
hdlr = logging.FileHandler( logdir + os.sep + projname + '.log' )
formatter = logging.Formatter('%(asctime)s %(levelname)s %(message)s')
hdlr.setFormatter(formatter)
logger.addHandler( hdlr )
logger.setLevel( logging.DEBUG )
__builtins__['log'] = logger
log.info( 'project logger start' )
make sure you have created 'logs' folder at your project or django src.
then you can use log object anywhere.
ATTENTION: NOT fully tested.
Note:
See TracTickets
for help on using tickets.
I fail to see what this gains Django: if you'd like to use Python's logging, nothing prevents you, and hardcoding the log level and such into django.conf.settings is scary.