相关疑难解决方法(0)

如果__name__ =="__ main__":怎么办?

怎么if __name__ == "__main__":办?

# Threading example
import time, thread

def myfunction(string, sleeptime, lock, *args):
    while True:
        lock.acquire()
        time.sleep(sleeptime)
        lock.release()
        time.sleep(sleeptime)

if __name__ == "__main__":
    lock = thread.allocate_lock()
    thread.start_new_thread(myfunction, ("Thread #: 1", 2, lock))
    thread.start_new_thread(myfunction, ("Thread #: 2", 2, lock))
Run Code Online (Sandbox Code Playgroud)

python program-entry-point idioms namespaces python-module

5545
推荐指数
36
解决办法
261万
查看次数

在gunicorn中使用Python日志模块的正确方法?

我在使用 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)

python logging flask gunicorn

6
推荐指数
0
解决办法
2484
查看次数