0

I think I'm missing something big and for the life of me, I can't figure it out. I have a logging.conf file that I am trying my main (say, xyz.py) file to read. But I am getting this weird error. I have the traceback below followed by the configuration file - logging.conf and then the relevant part in xyz.py.

File "xyz.py", line 28, in <module> log = logging.config.fileConfig('/Users/Username/Desktop/logging.conf') File "/usr/local/Cellar/python/2.7.5/Frameworks/Python.framework/Versions/2.7/lib/python2.7/logging/config.py", line 78, in fileConfig handlers = _install_handlers(cp, formatters) File "/usr/local/Cellar/python/2.7.5/Frameworks/Python.framework/Versions/2.7/lib/python2.7/logging/config.py", line 156, in _install_handlers h = klass(*args) TypeError: __init__() takes at most 7 arguments (23 given) 

The configuration file - full path = /Users/Username/Desktop/logging.config (I followed the instruction from http://docs.python.org/release/2.5.2/lib/logging-config-fileformat.html)

[loggers] keys=root [handlers] keys=handlersmtp, handlerfile [formatters] keys=formatter [formatter_formatter] format=%(asctime)s %(name)s %(levelname)s %(message)s datefmt= class=logging.Formatter [logger_root] level=NOTSET handlers=handlersmtp, handlerfile [handler_handlersmtp] class=handlers.SMTPHandler level= INFO formatter=formatter args=(('localhost', 25),'[email protected]', ['[email protected]'], 'The log') [handler_handlerfile] class=handlers.RotatingFileHandler level= INFO formatter=formatter backupCount=1440 args=('alogger.log') 

The part in main file -xyz.py

import logging import logging.config log = logging.config.fileConfig('/Users/Username/Desktop/logging.config') 

I looked at the Python is logging/config.py module but couldn't follow why it was raising this. It's a pretty big file.

EDIT:

@VineySajip's answer removed the error above but I am working on this new one now.

[handler_handlerfile] class=handlers.RotatingFileHandler level= INFO formatter=formatter args=('alogger.log', mode='a', maxBytes=25000, backupCount=0, encoding=None, delay=0) #New line to fit #this page but code has it all in 1 line 

The new traceback:

Traceback (most recent call last): File "cpu6.py", line 29, in <module> log = logging.config.fileConfig('/Users/Username/Desktop/logging.ini') File "/usr/local/Cellar/python/2.7.5/Frameworks/Python.framework/ Versions/2.7/lib/python2.7/logging/config.py", line 78, in fileConfig handlers = _install_handlers(cp, formatters) File "/usr/local/Cellar/python/2.7.5/Frameworks/Python.framework/ Versions/2.7/lib/python2.7/logging/config.py", line 155, in _install_handlers args = eval(args, vars(logging)) File "<string>", line 1 ('alogger.log', mode='a', maxBytes=25000, backupCount=0, encoding=None, delay=0) ^ SyntaxError: invalid syntax 

1 Answer 1

3

In your config, ('alogger.log') is not a valid argument tuple, and in fact the whole section looks wrong. RotatingFileHandler has the following arguments:

filename, mode='a', maxBytes=0, backupCount=0, encoding=None, delay=0 

and you need to specify an argument tuple which reflects this. You haven't specified a maxBytes value, so rollover would never occur; and 1440 looks like an odd number of backup log files to keep. Review the documentation to make sure you're using the correct arguments for the handler's __init__.py.

Update: Leave out the parameter names, like so:

args=('alogger.log', 'a', 25000, 0, None, 0) 
Sign up to request clarification or add additional context in comments.

1 Comment

Thanks. I am getting a different error now though. I changed that section to read as mentioned in the EDIT section in the question above with the traceback below it.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.