By using this site, you agree to our updated Privacy Policy and our Terms of Use. Manage your Cookies Settings.
432,490 Members | 1,417 Online
Bytes IT Community
+ Ask a Question
Need help? Post your question and get tips & solutions from a community of 432,490 IT Pros & Developers. It's quick & easy.

logging breakdown

P: n/a
Hello,

I'm getting strange exception raised using module logging.
It's strange because it happens only sometimes, and it happens
in different places (but always in a logging method).
i.e. this line of code:

log.info('SMS sent')

produces following traceback:

Traceback (most recent call last):
File "L:\_progs\python\test\send_sms.py", line 36, in send_sms
log.info('SMS sent')
File "L:\Python23\lib\logging\__init__.py", line 893, in info
apply(self._log, (INFO, msg, args), kwargs)
File "L:\Python23\lib\logging\__init__.py", line 994, in _log
self.handle(record)
File "L:\Python23\lib\logging\__init__.py", line 1004, in handle
self.callHandlers(record)
File "L:\Python23\lib\logging\__init__.py", line 1037, in callHandlers
hdlr.handle(record)
File "L:\Python23\lib\logging\__init__.py", line 592, in handle
self.emit(record)
File "L:\Python23\lib\logging\__init__.py", line 684, in emit
self.handleError(record)
File "L:\Python23\lib\logging\__init__.py", line 636, in handleError
traceback.print_exception(ei[0], ei[1], ei[2], None, sys.stderr)
File "L:\Python23\lib\traceback.py", line 123, in print_exception
print_tb(tb, limit, file)
File "L:\Python23\lib\traceback.py", line 69, in print_tb
if line: _print(file, ' ' + line.strip())
File "L:\Python23\lib\traceback.py", line 13, in _print
file.write(str+terminator)
IOError: [Errno 9] Bad file descriptor
This is the way I initialize logging:

def initLogger(filename):
log = logging.getLogger('test')
formatter = logging.Formatter('%(asctime)s %(name)s %(levelname)s %(message)s')

# file
hdlr = logging.FileHandler(filename)
hdlr.setFormatter(formatter)
log.addHandler(hdlr)

# screen
hdlr = logging.StreamHandler(sys.stdout)
hdlr.setFormatter(formatter)
log.addHandler(hdlr)

log.setLevel(logging.DEBUG)

return log

log = initLogger('test.log')

I pass variable "log" to functions requesting it.
My script runs continually, sleeping 1h, doing something, sleeping 1h, etc.
Is it possible that file handler expires or something?

Do I do something wrong?

Thanks,
Marek Augustyn
Jul 18 '05 #1
Share this question for a faster answer!
Share on Google+

This discussion thread is closed

Replies have been disabled for this discussion.