0
我想写一个简单的记录器,但我得到一个异常抛出。我希望得到一些关于为什么抛出这个异常的建议,但也会欣赏一些设计建议(请记住,我想保持这种简单)。简单的旋转Python记录器(RotatingFileHandler)
代码:
import logging
import logging.handlers
class Logger:
@staticmethod
def log_to_file(logText):
logFile = logging.handlers.RotatingFileHandler('/var/log/sosms/sosmsd.log', 'a', 1000, 5)
formatter = logging.Formatter()
logFile.setFormatter(formatter)
logFile.emit(logText)
return
输出:
[email protected]:/var/log/sosms$ /etc/rc.local
Traceback (most recent call last):
File "/usr/lib/python2.7/logging/handlers.py", line 77, in emit
if self.shouldRollover(record):
File "/usr/lib/python2.7/logging/handlers.py", line 156, in shouldRollover
msg = "%s\n" % self.format(record)
File "/usr/lib/python2.7/logging/__init__.py", line 719, in format
return fmt.format(record)
File "/usr/lib/python2.7/logging/__init__.py", line 464, in format
record.message = record.getMessage()
AttributeError: 'str' object has no attribute 'getMessage'
Traceback (most recent call last):
File "/git/sosms/sosmsd/Main.py", line 10, in <module>
Logger.Logger.log_to_file('SOSMSD starting..')
File "/git/sosms/sosmsd/Logger.py", line 14, in log_to_file
logFile.emit(logText)
File "/usr/lib/python2.7/logging/handlers.py", line 83, in emit
self.handleError(record)
File "/usr/lib/python2.7/logging/__init__.py", line 799, in handleError
record.filename, record.lineno))
AttributeError: 'str' object has no attribute 'filename'
一个建议:你的封装日志实现一类是不必要的。 – 2012-07-08 00:52:24