【发布时间】:2019-12-03 03:01:54
【问题描述】:
我被这个问题逼疯了。我只想使用我的 basicConfig 进行日志记录,但模块 (uvicorn) 也在记录到文件中。
例子:
2019-11-27 14:44:29,595 - uvicorn - INFO - ('127.0.0.1', 62211) - "GET /consumption/xyz HTTP/1.1" 200
('127.0.0.1', 62211) - "GET /consumption/xyz HTTP/1.1" 200
我不希望出现第二条消息,因为它是重复的...如何禁用它?
更新: 使用的代码...
formatter = logging.Formatter('%(asctime)s - %(name)s - %(levelname)s - %(message)s')
logging.getLogger("snowflake.connector.network").disabled = True # remove snowflake network logging
logging.getLogger("snowflake.connector.connection").disabled = True
logging.getLogger('snowflake.connector').setLevel(logging.INFO)
logging.getLogger('boto3').setLevel(logging.INFO)
logging.getLogger('botocore').setLevel(logging.CRITICAL)
logging.getLogger('urllib3').setLevel(logging.CRITICAL)
logging.basicConfig(filename=f'{CFG.get("log_path")}',
filemode='w',
level=logging.DEBUG,
format='%(asctime)s - %(name)s - %(levelname)s - %(message)s'
)
rotating = RotatingFileHandler(f'{CFG.get("log_path")}', maxBytes=1024*1024*500, backupCount=4)
logging.getLogger('').addHandler(rotating)
设置 access-log = False 后的日志。我打了几次 API:
2019-12-02 10:16:26,635 - uvicorn - WARNING - auto-reload only works when app is passed as an import string.
2019-12-02 10:16:26,656 - uvicorn - INFO - Started server process [20653]
2019-12-02 10:16:26,656 - uvicorn - INFO - Waiting for application startup.
2019-12-02 10:16:26,657 - uvicorn - INFO - Uvicorn running on http://127.0.0.1:8000 (Press CTRL+C to quit)
2019-12-02 10:16:43,379 - uvicorn - INFO - Shutting down
2019-12-02 10:16:43,479 - uvicorn - INFO - Waiting for application shutdown.
2019-12-02 10:16:43,479 - uvicorn - INFO - Finished server process [20653]
Finished server process [20653]
access_log = True 时记录:
2019-12-02 10:17:44,438 - uvicorn - WARNING - auto-reload only works when app is passed as an import string.
2019-12-02 10:17:44,459 - uvicorn - INFO - Started server process [20791]
2019-12-02 10:17:44,459 - uvicorn - INFO - Waiting for application startup.
2019-12-02 10:17:44,460 - uvicorn - INFO - Uvicorn running on http://127.0.0.1:8000 (Press CTRL+C to quit)
2019-12-02 10:17:58,571 - uvicorn - INFO - ('127.0.0.1', 55861) - "GET / HTTP/1.1" 200
('127.0.0.1', 55861) - "GET / HTTP/1.1" 200
【问题讨论】:
-
你读过这个吗? uvicorn.org/settings/#logging点--no-access-log
-
我正在使用 uvicorn.run(),找不到要传入的 arg
-
这是官网的一段话“如果你以编程方式运行 using,使用 uvicorn.run(...),然后使用等效的关键字参数,例如 uvicorn.run(”示例:应用“,端口=5000,重新加载=真,访问日志=假)”
-
很糟糕,但是,禁用它会完全禁用该消息。我只需要删除重复的。
-
等等,但第一行是您的自定义日志?..
标签: python logging starlette uvicorn