烧瓶不登录文件



我有相同的代码

from logging.handlers import RotatingFileHandler
from logging import ERROR, Formatter
from flask.logging import default_handler
database.init_db()
handler = RotatingFileHandler("logs/log.txt", maxBytes=10000, backupCount=10)
handler.setLevel(ERROR)
handler.setFormatter(Formatter('%(asctime)s %(levelname)s: %(message)s'))
app.logger.removeHandler(default_handler)
app.logger.addHandler(handler)
app.run()

从其他模块进行此日志记录,使用

from main import app
try:
#some code
except Exception as e:
app.logger.error(e)

控制台中的日志输出正确,但它们不会写入文件日志/日志.txt。我做错了什么?项目目录中的"logs"目录中的文件,权限为 777

我在默认dictConfig的帮助下解决了我的问题,如下所示:

from logging.config import dictConfig    
dictConfig({
'version': 1,
'formatters': {'default': {
'format': '[%(asctime)s] %(levelname)s in %(module)s.%(funcName)s Line %(lineno)s: %(message)s',
}},
'handlers': {'file': {
'class': 'logging.handlers.RotatingFileHandler',
'filename': 'logs/admin.log',
'formatter': 'default'
}},
'root': {
'level': 'ERROR',
'handlers': ['file']
}
})

必须在创建 Flask 类的实例之前定义字典

app = Flask(__name__)

最新更新