[svn] switched from dodgy manually writing to logfile to using python's logging module, which seems great

This commit is contained in:
substantialnoninfringinguser 2009-05-22 06:17:24 +01:00
parent 7769a35f07
commit f6d3a7c84e
5 changed files with 37 additions and 45 deletions

View File

@ -1,4 +1,4 @@
import urllib, urlparse, string, os, datetime
import urllib, urlparse, string, os, datetime, logging
import troggle.mptt as mptt
from django.forms import ModelForm
from django.db import models
@ -14,6 +14,10 @@ getcontext().prec=2 #use 2 significant figures for decimal calculations
from models_survex import *
logging.basicConfig(level=logging.DEBUG,
filename=settings.LOGFILE,
filemode='w')
#This class is for adding fields and methods which all of our models will have.
class TroggleModel(models.Model):
new_since_parsing = models.BooleanField(default=False, editable=False)

View File

@ -1,12 +1,7 @@
# -*- coding: utf-8 -*-
import troggle.expo.models as models
from django.conf import settings
import csv
import time
import re
import os
import csv, time, re, os, logging
from troggle.save_carefully import save_carefully
##format of CAVETAB2.CSV is
@ -136,20 +131,18 @@ def html_to_wiki(text):
text2 = ""
return out
def LoadCaveTab(logfile=settings.LOGFILE):
def LoadCaveTab():
cavetab = open(os.path.join(settings.EXPOWEB, "noinfo", "CAVETAB2.CSV"),'rU')
caveReader = csv.reader(cavetab)
caveReader.next() # Strip out column headers
if logfile:
logfile.write("Beginning to import caves from "+str(cavetab)+"\n"+"-"*60+"\n")
logging.info("Beginning to import caves from "+str(cavetab)+"\n"+"-"*60+"\n")
for katArea in ['1623', '1626']:
if not models.Area.objects.filter(short_name = katArea):
newArea = models.Area(short_name = katArea)
newArea.save()
if logfile:
logfile.write("Added area "+str(newArea.short_name)+"\n")
logging.info("Added area "+str(newArea.short_name)+"\n")
area1626 = models.Area.objects.filter(short_name = '1626')[0]
area1623 = models.Area.objects.filter(short_name = '1623')[0]
@ -190,8 +183,7 @@ def LoadCaveTab(logfile=settings.LOGFILE):
addToDefaultArgs(Notes, "notes")
newCave, created=save_carefully(models.Cave, lookupAttribs=args, nonLookupAttribs=defaultArgs)
if logfile:
logfile.write("Added cave "+str(newCave)+"\n")
logging.info("Added cave "+str(newCave)+"\n")
#If we created a new cave, add the area to it. This does mean that if a cave's identifying features have not changed, areas will not be updated from csv.
if created and line[Area]:
@ -209,14 +201,14 @@ def LoadCaveTab(logfile=settings.LOGFILE):
newCave.area.add(area1623)
newCave.save()
if logfile:
logfile.write("Added area "+line[Area]+" to cave "+str(newCave)+"\n")
logging.info("Added area "+line[Area]+" to cave "+str(newCave)+"\n")
if created and line[UnofficialName]:
newUnofficialName = models.OtherCaveName(cave = newCave, name = line[UnofficialName])
newUnofficialName.save()
if logfile:
logfile.write("Added unofficial name "+str(newUnofficialName)+" to cave "+str(newCave)+"\n")
logging.info("Added unofficial name "+str(newUnofficialName)+" to cave "+str(newCave)+"\n")
if created and line[MultipleEntrances] == '' or \
line[MultipleEntrances] == 'entrance' or \
@ -277,8 +269,8 @@ def LoadCaveTab(logfile=settings.LOGFILE):
addToArgs(Bearings, 'bearings')
newEntrance = models.Entrance(**args)
newEntrance.save()
if logfile:
logfile.write("Added entrance "+str(newEntrance)+"\n")
logging.info("Added entrance "+str(newEntrance)+"\n")
if line[Entrances]:
entrance_letter = line[Entrances]
@ -287,8 +279,8 @@ def LoadCaveTab(logfile=settings.LOGFILE):
newCaveAndEntrance = models.CaveAndEntrance(cave = newCave, entrance = newEntrance, entrance_letter = entrance_letter)
newCaveAndEntrance.save()
if logfile:
logfile.write("Added CaveAndEntrance "+str(newCaveAndEntrance)+"\n")
logging.info("Added CaveAndEntrance "+str(newCaveAndEntrance)+"\n")
# lookup function modelled on GetPersonExpeditionNameLookup

View File

@ -1,6 +1,4 @@
import sys
import os
import types
import sys, os, types, logging
#sys.path.append('C:\\Expo\\expoweb')
#from troggle import *
#os.environ['DJANGO_SETTINGS_MODULE']='troggle.settings'
@ -26,7 +24,7 @@ def get_or_create_placeholder(year):
placeholder_logbook_entry, newly_created = save_carefully(LogbookEntry, lookupAttribs, nonLookupAttribs)
return placeholder_logbook_entry
def readSurveysFromCSV(logfile=None):
def readSurveysFromCSV():
try:
surveytab = open(os.path.join(settings.SURVEYS, "Surveys.csv"))
except IOError:
@ -43,16 +41,16 @@ def readSurveysFromCSV(logfile=None):
print "There are no expeditions in the database. Please run the logbook parser."
sys.exit()
if logfile:
logfile.write("Deleting all scanned images")
logging.info("Deleting all scanned images")
ScannedImage.objects.all().delete()
if logfile:
logfile.write("Deleting all survey objects")
logging.info("Deleting all survey objects")
Survey.objects.all().delete()
if logfile:
logfile.write("Beginning to import surveys from "+str(os.path.join(settings.SURVEYS, "Surveys.csv"))+"\n"+"-"*60+"\n")
logging.info("Beginning to import surveys from "+str(os.path.join(settings.SURVEYS, "Surveys.csv"))+"\n"+"-"*60+"\n")
for survey in surveyreader:
#I hate this, but some surveys have a letter eg 2000#34a. The next line deals with that.
@ -74,8 +72,8 @@ def readSurveysFromCSV(logfile=None):
pass
surveyobj.save()
if logfile:
logfile.write("added survey " + survey[header['Year']] + "#" + surveyobj.wallet_number + "\r")
logging.info("added survey " + survey[header['Year']] + "#" + surveyobj.wallet_number + "\r")
def listdir(*directories):
try:

View File

@ -1,4 +1,4 @@
from settings import LOGFILE
import logging
def save_carefully(objectType, lookupAttribs={}, nonLookupAttribs={}):
"""Looks up instance using lookupAttribs and carries out the following:
@ -18,14 +18,12 @@ def save_carefully(objectType, lookupAttribs={}, nonLookupAttribs={}):
setattr(instance, k, v)
instance.save()
if LOGFILE:
if created:
LOGFILE.write(unicode(instance)+u' was just added to the database for the first time. \n')
logging.info(unicode(instance)+u' was just added to the database for the first time. \n')
if not created and instance.new_since_parsing:
LOGFILE.write(unicode(instance)+" has been modified using Troggle, so the current script left it as is. \n")
logging.info(unicode(instance)+" has been modified using Troggle, so the current script left it as is. \n")
if not created and not instance.new_since_parsing:
LOGFILE.write(unicode(instance)+" existed in the database unchanged since last parse. It was overwritten by the current script. \n")
LOGFILE.flush()
logging.info(unicode(instance)+" existed in the database unchanged since last parse. It was overwritten by the current script. \n")
return (instance, created)

View File

@ -10,7 +10,7 @@
<li>{{ job }}</li>
{% endfor %}
</ul>
{% if settings.LOGFILE %}See the logfile at {{settings.LOGFILE.path}} for more information.{% endif %}
{% if settings.LOGFILE %}See the logfile at {{settings.LOGFILE}} for more information.{% endif %}
<a href="#" class="closeDiv">dismiss this message</a>
</div>
{% endif %}