我尝试在Django中实现记录器。我已经准备好在Django版本1.5和Python 2.7中工作。
但是当我尝试在实际版本(Django 2.0.8和Python 3.6.5)上实现它时 我在manage.py中的以下代码上收到错误消息:
import logging.config
import os
import sys
PROJECT_PATH = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
sys.path.append(PROJECT_PATH)
os.environ["DJANGO_SETTINGS_MODULE"] = "ProjectServer.settings"
logging.config.fileConfig('ProjectServer/logging.ini')
try:
import settings
except ImportError:
import sys
sys.stderr.write("Error: Can't find the file 'settings.py' in the directory containing. ")
sys.exit(1)
if __name__ == "__main__":
import django
django.setup()
from django.core.management import execute_from_command_line
execute_from_command_line(sys.argv)
我得到的例外情况:
Exception has occurred: TypeError
'>' not supported between instances of 'str' and 'int'
File "C:\path\ProjectServer\manage.py", line 10, in<module>
logging.config.fileConfig('ProjectServer/logging.ini')
我的logging.ini:
[loggers]
keys=root
[handlers]
keys=consoleHandler, rotatingFileHandler
[formatters]
keys=simpleFormatter
[logger_root]
level=DEBUG
handlers=consoleHandler,rotatingFileHandler
[handler_consoleHandler]
class=logging.StreamHandler
level=INFO
formatter=simpleFormatter
args=(sys.stdout,)
[handler_rotatingFileHandler]
class=logging.handlers.RotatingFileHandler
args=(r'c:\log\debug.log','maxBytes=1000000','backupCount=3')
level=INFO
formatter=simpleFormatter
[formatter_simpleFormatter]
format=%(asctime)s - %(name)s - %(levelname)s - %(message)s
datefmt=
我真的不知道怎么会出现错误。当我检查Python版本时,没有发现有关日志记录的任何更改。
然后,我导入日志记录,并在模型和视图中像这样使用它
import logging
logger = logging.getLogger(__name__)
logger.info('error creating calendar file')
答案 0 :(得分:0)
运算符>
可以用于两种不同的类型,例如字符串和整数。示例:
s = "xxx"
n = 123
s > n // will output True
在python3中,不允许执行此操作。
TypeError: unorderable types: str() > int()
比较>
的操作符在python docs中有详细描述
似乎您的代码中的某个地方正在尝试比较字符串与整数。
编辑(OP发布代码后)
发生operator >
参数不受支持的问题,因为您的RotatingFileHandler
设置maxBytes
被解释为字符串而不是整数。您可以通过提供RotatingFileHandler
构造函数参数的列表而不使用关键字符号来解决此问题。像这样:
[handler_rotatingFileHandler]
class=logging.handlers.RotatingFileHandler
args=(r'c:\log\debug.log', 'a', 1000000, 3)
level=INFO
formatter=simpleFormatter
第二个参数为mode
,默认情况下等于'a'
。 reference