我在使用 Python 3.6 ( Flask==0.11.1
) 和gunicorn==19.9.0
. 我正在使用structlog==18.1.0
(用于 JSON 日志记录)并python-json-logger==0.1.9
在 Flask 应用程序内部注销各种单独运行良好的东西,即在没有 gunicorn 的情况下运行 Flask 应用程序时。但是当在 gunicorn 中运行 Flask 应用程序时,一些日志问题随机开始出现,即来自 gunicorn 和 Flask 应用程序内部的访问日志都丢失了。
记录事件的一个例子是
import structlog
def some_flask_endpoint():
logger = structlog.getLogger(__name__)
logger.info('This is an info event', additional_data='some additional data')
Run Code Online (Sandbox Code Playgroud)
这应该向类似于此的日志输出 JSON 消息
{"message": "This is an info event", "additional_data": "some additional data"}
Run Code Online (Sandbox Code Playgroud)
目前,这一切都是通过日志 FileConfig(gunicorn 和 Flask 应用程序都在使用)完成的,如下所示:
[loggers]
keys = root,gunicorn.error,gunicorn.access
[handlers]
keys=console,logfile
[formatters]
keys=json
[logger_root]
level=INFO
handlers=console,logfile
[logger_gunicorn.error]
level = INFO
handlers …
Run Code Online (Sandbox Code Playgroud) 我有一个缓冲区,缓冲区中的每个条目的大小为8位:
uint8_t Buffer[10] = {0x12,0x34,0x56,0x78,0xF1,0xF2,0xF3,0xF4,0xF5,0xF6};
Run Code Online (Sandbox Code Playgroud)
我需要做的是创建指向该数组的指针,例如16位和32位指针。例如:
uint32_t *x;
x = Buffer;
uint32_t *y;
y = Buffer+4;
uint16_t *z;
z = Buffer+8;
Run Code Online (Sandbox Code Playgroud)
然后每个变量将从数组中读取的位置,例如:
x = 0x78563412
y = 0xf4f3f2f1
z = 0xf6f5
Run Code Online (Sandbox Code Playgroud)
这完全可以正常工作,问题是我收到有关不兼容的指针类型的警告。所以我想知道是否还有其他方法可以做到,还是我只能忍受警告呢?还是我只是完全以错误的方式进行此操作?
请注意,此代码将在字节序始终相同且数据类型大小始终相同的单一平台上执行。