我正在将我的代码从 Python flask 迁移到 Fast-API。我在向快速 API 添加记录器时遇到问题,它将显示
“AttributeError:‘FastAPI’对象没有‘logger’属性”
请参阅代码以获取更多信息
from fastapi import FastAPI, HTTPException
import uvicorn
from logging.handlers import RotatingFileHandler
import logging
app = FastAPI()
if __name__ == '__main__':
formatter = logging.Formatter(
"[%(asctime)s.%(msecs)03d] %(levelname)s [%(thread)d] - %(message)s", "%Y-%m-%d %H:%M:%S")
handler = RotatingFileHandler('/log/abc.log', backupCount=0)
logging.getLogger().setLevel(logging.NOTSET)
app.logger.addHandler(handler)
handler.setFormatter(formatter)
app.logger.info('****************** Starting Server *****************') # "AttributeError: 'FastAPI' object has no attribute 'logger'"
uvicorn.run()
Run Code Online (Sandbox Code Playgroud) 我试图遵循的使用示例namedtuple( )从文档,但我不断收到namedtuple is not defined。
我在C中编写了一些简单的代码来测试一些内存分配和指针:
#include <stdlib.h>
#include <stdio.h>
int *randomAlloc(int n) {
int *address = NULL, i = 0;
address = malloc (n * sizeof(int));
for (i = 0; i < n ; i++){
*(address + i) = i ;
}
return address;
}
int main(int argc, char* argv[] ) {
int *address;
int n;
printf("Type vector size: ");
scanf("%d", &n);
address = randomAlloc(n);
free(address);
}
Run Code Online (Sandbox Code Playgroud)
但是由于某些原因,当我输入4作为输入valgrind输出时:
==2375== Memcheck, a memory error detector
==2375== Copyright (C) 2002-2015, and GNU GPL'd, by Julian Seward …Run Code Online (Sandbox Code Playgroud) 我发现 List.delete/2,这只删除搜索到的第一个条目。我一直在寻找删除所有条目的东西,例如
[:a, :b, :c, :a, :a]
|> List.delete_all :a
[:b, :c]
Run Code Online (Sandbox Code Playgroud)
有这样的事吗?也许像List.delete_all/2
我正在寻找一种在 Elixir 中分割字符串的方法,而不删除用于分割的模式,String.split/3行为如下
String.split "testZng", "Z"
# ["test", "ng"]
Run Code Online (Sandbox Code Playgroud)
我正在寻找这样的东西
String.split "testZng", "Z"
# ["test", "Zng"]
Run Code Online (Sandbox Code Playgroud)
或者像这样
String.split "testZng", "Z"
# ["testZ", "ng"]
Run Code Online (Sandbox Code Playgroud)