我认为我错过了一些重要的东西,对于我的生活,我无法理解。我有一个logging.conf
文件,我正在尝试使用我的主文件(例如,xyz.py
)来阅读。但我得到了这个奇怪的错误。我在下面跟踪了配置文件 - logging.conf
,然后是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)
配置文件 - 完整路径= /Users/Username/Desktop/logging.config
(我按照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),'localhost@localhost.com', ['abc@bca.com'],
'The log')
[handler_handlerfile]
class=handlers.RotatingFileHandler
level= INFO
formatter=formatter
backupCount=1440
args=('alogger.log')
主文件中的部分 - xyz.py
import logging
import logging.config
log = logging.config.fileConfig('/Users/Username/Desktop/logging.config')
我查看了Python是logging / config.py模块,但无法理解它为何提出这个问题。这是一个非常大的文件。
编辑:
@ VineySajip的回答删除了上面的错误,但我现在正在处理这个新错误。
[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
新的追溯:
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
答案 0 :(得分:2)
在您的配置中,('alogger.log')
不是有效的参数元组,实际上整个部分看起来都是错误的。 RotatingFileHandler
具有以下参数:
filename, mode='a', maxBytes=0, backupCount=0, encoding=None, delay=0
你需要指定一个反映这一点的参数元组。您尚未指定maxBytes
值,因此永远不会发生翻转;和1440看起来像是要保留的奇数个备份日志文件。查看文档以确保您使用处理程序的__init__.py
。
更新:省略参数名称,如下所示:
args=('alogger.log', 'a', 25000, 0, None, 0)