小编Bob*_*ame的帖子

Python瓶vs uwsgi/bottle vs nginx/uwsgi/bottle

我正在开发一个基于Python的应用程序(HTTP-REST或jsonrpc接口),它将用于生产自动化测试环境.这将连接到运行所有测试脚本的Java客户端.即,不需要人工访问(除了测试应用程序本身).

我们希望在Raspberry Pi上部署它,所以我希望它相对快速且占用空间小.它可能不会得到大量的请求(在最大负载,可能是每秒几个),但它应该能够运行并在很长一段时间内保持稳定.

由于其简单性(一个文件),我已经确定了Bottle作为框架.这是对Flask的折腾.任何认为Flask可能更好的人,让我知道原因.

我对Bottle的内置HTTP服务器的稳定性有点不确定,所以我正在评估这三个选项:

  1. 仅使用瓶子 - 作为http服务器+应用程序
  2. 在uwsgi之上使用Bottle - 使用uwsgi作为HTTP服务器
  3. 使用nginx/uwsgi瓶

问题:

  • 如果我没有做任何事情,除了Python/uwsgi,是否有任何理由将混合添加nginx?
  • uwsgi/bottle(或Flask)组合是否会被视为生产就绪?
  • 是否可能通过使用Bottle内置的单独的HTTP服务器获得任何收益?

python nginx bottle uwsgi

10
推荐指数
2
解决办法
6428
查看次数

Python中的每文件/模块记录器

我有一些我需要添加日志记录的Python代码.

我总是喜欢漂亮的大C宏看起来语句,如"DEBUG()","ERROR()"等用于日志记录.我觉得当跟踪点在视觉上与实际代码区分开来时,它使代码更容易阅读(没有对象).

我还希望能够在每个模块级别设置日志记录级别.

我怎样才能创建一个名为"log"的模块,它能够做到这一点(同时使用Python标准库记录模块)?

例如:

文件:main.py

# This imports LOG_MODULE_NAME, DEBUG, WARN, etc
from log import *
import my_module

LOG_MODULE_NAME("main")

log.set_level("main", log.LVL_DEBUG)
log.set_level("my_module", log.LVL_WARN)

if __name__ == "__main__":
    foo = my_module.myFunc(2)

DEBUG("Exiting main.py")
Run Code Online (Sandbox Code Playgroud)

文件:my_module.py

from log import *

LOG_MODULE_NAME("my_module")


def myFunc(x):
    DEBUG("Entering function")
    if x != 1:
         WARN("I thought it would be 1")
    DEBUG("Exiting function")
    return x+1
Run Code Online (Sandbox Code Playgroud)

我希望输出看起来像:

[WARN:my_module - my_module.py:9] I thought it would be 1
[DEBUG:main - main.py:11] Exiting main.py
Run Code Online (Sandbox Code Playgroud)

python logging

5
推荐指数
2
解决办法
4522
查看次数

标签 统计

python ×2

bottle ×1

logging ×1

nginx ×1

uwsgi ×1