On Jul 21, 5:53 pm, davidj411 <davidj...@gmail.com> wrote:
> On Jul 21, 5:29 pm, Simon Forman <sajmik...@gmail.com> wrote:
>
>
>
> > On Jul 21, 5:00 pm, davidj411 <davidj...@gmail.com> wrote:
>
> > > I am using a recursive function to print the time and a few other
> > > things on each pass. ( the function calculates size of file that is
> > > being transferred and if not 100 % copied, it waits 20 secs and checks
> > > again).
>
> > > i would expect the time to be correct anytime it is used:
>
> > > <--code below -->>
> > > print time.strftime('%m-%d-%Y %H:%m:%S')
> > > <--code above -->>
>
> > > here is an example of what i am seeing:
>
> > > 16:07:16
> > > 16:07:36
> > > 16:07:56
> > > 16:07:16
> > > 16:07:36
> > > 16:07:56
> > > 16:07:16
> > > 16:07:36
> > > 16:07:56
>
> > Your output doesn't match your format string:
>
> > In [1]: import time
>
> > In [2]: print time.strftime('%m-%d-%Y %H:%m:%S')
> > 07-21-2009 17:07:16
>
> > There's no way to tell why your output times seem to repeat without
> > seeing the code that surrounds your "print time.strftime('%m-%d-%Y %H:
> > %m:%S')" line.
>
> sorry, yes, i did manually filter the output.
>
> here is the function:
>
> def log_out(msg,servername='std.out'):
>         print msg
>         open(log_dir + '\\' + servername + ".log",'a').write(servername + "-"
> + time.strftime('%m-%d-%Y %H:%M:%S') + " " + msg+'\n')
>
> on each pass, it should output the newer time (whether recursive or
> not, right) ?

Well, as Piet van Oostrum pointed out, your problem in the first code
you posted was that you used '%m' rather than '%M' for the minutes.
(Good eye Van Oostrum!)  But now in this function you seem to have the
correct '%M' field.  Are you still having the same output after
changing that?


In any event, here's a rewritten version of that function that's a
little cleaner, FWIW.


from os.path import join
from time import strftime

format = '%m-%d-%Y %H:%M:%S'

def log_out(msg, servername='std.out'):
    print msg
    msg = "%s - %s %s\n" % (servername, strftime(format), msg)
    log_file = open(join(log_dir, servername + ".log"), 'a')
    try:
        log_file.write(msg)
    finally:
        log_file.close()


But why not just use the logging module?
-- 
http://mail.python.org/mailman/listinfo/python-list

Reply via email to