我正在尝试做一个非常简单的日志记录设置。我只想将所有日志输出发送到终端和日志文件。我在Real Python上找到了以下示例,演示了流和文件日志处理程序的设置:
# logging_example.py
import logging
# Create a custom logger
logger = logging.getLogger(__name__)
# Create handlers
c_handler = logging.StreamHandler()
f_handler = logging.FileHandler('file.log')
c_handler.setLevel(logging.WARNING)
f_handler.setLevel(logging.ERROR)
# Create formatters and add it to handlers
c_format = logging.Formatter('%(name)s - %(levelname)s - %(message)s')
f_format = logging.Formatter('%(asctime)s - %(name)s - %(levelname)s - %(message)s')
c_handler.setFormatter(c_format)
f_handler.setFormatter(f_format)
# Add handlers to the logger
logger.addHandler(c_handler)
logger.addHandler(f_handler)
logger.warning('This is a warning')
logger.error('This is an error')
## Log Output
# 2019-08-31 22:16:02,478 - __main__ - WARNING - …Run Code Online (Sandbox Code Playgroud) 我正在尝试使用 v4 API ValueRenderOption 参数( )访问超链接valueRenderOption=FORMULA。我尝试过 python 的 gsheets 和 cURL。不管怎样,我似乎无法得到显示超链接的公式。以下是电子表格的屏幕截图;请注意,包含该值的单元格2按预期显示了其公式,但指向https://example.com 的超链接显示为“sup”。我们是否应该有一种新的方式来访问超链接的内容?
g表:
print(worksheet.acell('A2', value_render_option="FORMULA").value)
# sup
Run Code Online (Sandbox Code Playgroud)
卷曲:
URL="https://sheets.googleapis.com/v4/spreadsheets/$SHEET_ID/values/%27Sheet1%27%21A2"
curl -X GET "$URL?valueRenderOption=FORMULA" -H "Authorization: Bearer $TOKEN"
# output
{
"range": "Sheet1!A1:Z1001",
"majorDimension": "ROWS",
"values": [
[
"Name",
"Other"
],
[
"sup",
"word"
],
[
"k",
100
],
[
"=AVERAGE(1,2,3)",
"k"
]
]
}
Run Code Online (Sandbox Code Playgroud) 我正在尝试在解析器上为我的玩具 GraphQL API 创建一个可选过滤器,它使用type-graphql@1.0.0-rc.3和class-validator@0.12.0。当我运行似乎矛盾的查询时,我收到此错误消息。我已经非常仔细地遵循了文档中的枚举示例,但我确信我遗漏了一些东西。
这是查询:
{
authors(
field: "name",
op: "CONTAINS",
value: "Jones"
) {
id,
name
}
}
Run Code Online (Sandbox Code Playgroud)
结果:
{
"error": {
"errors": [
{
"message": "Enum \"FilterType\" cannot represent non-enum value: \"CONTAINS\". Did you mean the enum value \"CONTAINS\"?"
}
]
}
}
Run Code Online (Sandbox Code Playgroud)
和枚举
{
authors(
field: "name",
op: "CONTAINS",
value: "Jones"
) {
id,
name
}
}
Run Code Online (Sandbox Code Playgroud)
还有我的解析器/ArgsType。
{
"error": {
"errors": [
{
"message": "Enum \"FilterType\" cannot represent non-enum value: …Run Code Online (Sandbox Code Playgroud) 使用以下命令:
gunicorn --workers=4 my_project.wsgi -b 0.0.0.0:8000 --log-level=info --access-logfile=my_project/logs/gunicorn_logs.txt
我能够记录每个请求。但是,这些日志不包括有关用户的信息:
127.0.0.1 - - [02/Aug/2018:13:46:44 -0500] GET /metrics/data HTTP/1.1 200 1589185 http://localhost:8000/ Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/64.0.3282.140 Safari/537.36
默认格式字符串是%(h)s %(l)s %(u)s %(t)s "%(r)s" %(s)s %(b)s "%(f)s" "%(a)s",如果我正确理解文档,“用户名”应该显示在“推荐人地址”之后和“请求日期”之前。我还在运行命令中包含了该格式字符串,只是为了验证是否发生了同样的事情,并且确实发生了。
我是否可以让 Gunicorn 也记录发出请求的用户?任何帮助,将不胜感激。
这是运行 Gunicorn 19.7.1 和 Django 1.11.9。
django ×1
enums ×1
graphql ×1
gunicorn ×1
logging ×1
python ×1
python-3.6 ×1
python-3.x ×1
typegraphql ×1
typescript ×1