Re: Handling the log in BaseHTTPServer

2011-05-04 Thread Tapi

Hi,

You may create a subclass of (or Mixin for) BaseHTTPRequestHandler to 
override its log_message() method.
Here's a really simple example ; it's perfectible, but it should show 
you the way :


class MyLoggingHTTPRequestHandler(BaseHTTPRequestHandler):
def log_message(self, format, *args):
open(LOGFILE, "a").write("%s - - [%s] %s\n" %
 (self.address_string(),
  self.log_date_time_string(),
  format%args))

httpd = HTTPServer(ADDR, MyLoggingHTTPRequestHandler)
httpd.serve_forever()


Simon

On Wed, 4 May 2011 03:52:29 -0700 (PDT), LehH Sdsk8 wrote:

First, i'm sorry for any inglish error!

So, i use the BaseHTTPServer to create a page for monitoring 
purposes,

someone now how to direct the event log to a file?


--
http://mail.python.org/mailman/listinfo/python-list


Re: Another MySQL Problem

2010-06-23 Thread Tapi
On Wed, 23 Jun 2010 10:46:37 -0430, Victor Subervi
 wrote:
> On Wed, Jun 23, 2010 at 10:25 AM, Stephen Hansen
> wrote:
> 
>> On 6/23/10 6:45 AM, Victor Subervi wrote:
>> > Hi;
>> > I have this line:
>> >
>> >   cursor.execute('select clientEmail from clients where client=%s',
>> > (string.replace(client, '_', ' ')))
>> >   clientEmail = cursor.fetchone()[0]
>> >   cursor.execute('select * from %s' % (client))
>> >
>> > client = "Lincoln_Properties"
>> > With the replacement, the interpreter complains that
mydatabase.Lincoln
>> > doesn't exist. Therefore, the first line of code isn't putting the %s
>> > replacement in quotes, as I was told by you all it would. So I add
>> > quotes to it and the interpreter complains on the second line of code
>> > that it's unsubscriptable (because it's None). What gives?
>>
>> Its very early, so excuse me if I fall asleep in the middle of the
>> response.
>>
>> First: Don't do 'string.replace(your_string, x, y)' -- that's back in
>> the very, very old days before strings themselves had all the nice
>> methods.
>>
>> Do, 'client.replace("_", " ")' instead.
>>
>> Second, you're forgetting a cardinal rule. Always, always, always,
>> include the actual tracebacks when reporting errors. Don't summarize
>> them.
>>
>> Third, I *think* the problem is-- though I may be wrong here, because
>> again, just woke up-- that you're not passing the options as a tuple.
>>
>> Consider: ("hello") is not a tuple with one item. This is a slight
>> 'wart' with Python syntax. Parens do not make tuples: *commas* do.
>> Therefore, every tuple *must* have a comma. To make a one-item tuple,
>> you must do ("hello", )
>>
> 
> Well making the changes you suggest throws this error:
> 
> A problem occurred in a Python script. Here is the sequence of function
> calls leading up to the error, in the order they occurred.
>  /var/www/html/globalsolutionsgroup.vi/mailSpreadsheet.py
>67 
>68 '''
>69
>70 mailSpreadsheet()
>71
> mailSpreadsheet = 
>  /var/www/html/globalsolutionsgroup.vi/mailSpreadsheet.py in
> mailSpreadsheet()
>34   subject = 'Order From Client'
>35   cursor.execute('select clientEmail from clients where
client="%s"',
> (client.replace('_', ' '),))
>36   clientEmail = cursor.fetchone()[0]
>37   cursor.execute('select * from %s', (client,))
>38   data = cursor.fetchall()
> clientEmail = 'jp...@lpc.com', cursor = ,
> cursor.fetchone =  object>>
> 
> TypeError: unsubscriptable object
>   args = ('unsubscriptable object',)
> 
> Please advise.
> TIA,
> beno

You should strongly consider reading the DB API 2.0 documentation :
http://www.python.org/dev/peps/pep-0249/

.fetchone() 
  
Fetch the next row of a query result set, returning a
single sequence, or None when no more data is
available. [6]

You script fails because the request returns no results, and fetchone()
returns None.
Evaluating None[0] is invalid, so you get an exception.

Test fetchone() return value before accessing it as a sequence, and
everything should be OK :

row = cursor.fetchone()
if row is None:
# error handling, i.e.:
raise CustomException("Client not found")
clientEmail = row[0]
...
-- 
http://mail.python.org/mailman/listinfo/python-list