小编Jas*_*son的帖子

Python记录器在未捕获的异常后停止记录

我们的烧瓶应用程序使用的本机python记录器似乎在发生异常后停止写入日志.每次停止之前记录的最后一个条目是描述异常的消息.通常,下一条消息是after_request中的代码写入的消息,但是对于记录器停止的情况,永远不会写出after_request消息.

知道是什么原因引起的吗?

注意:我最初在Serverfault(https://serverfault.com/questions/655683/python-logger-stops-logging)上发布了这个问题,认为这是一个基础设施问题.但是现在我们已经将问题缩小到在异常之后发生的问题,这个问题可能更适合Stackoverflow.

更新[12/22/2015]:

记录器实例化:

logging.addLevelName(Config.LOG_AUDIT_LEVEL_NUM, Config.LOG_AUDIT_LEVEL_NAME)

logger = logging.getLogger(Config.LOGGER_NAME)
logger.setLevel(Config.LOG_LEVEL)

handler = SysLogHandler(address='/dev/log', facility=SysLogHandler.LOG_LOCAL3)
handler.setLevel(Config.LOG_LEVEL)

formatter = log_formatter()
handler.setFormatter(formatter)
logger.addHandler(handler)
Run Code Online (Sandbox Code Playgroud)

log_formatter:

class log_formatter(logging.Formatter):

    def __init__(self,
                 fmt=None,
                 datefmt=None,
                 json_cls=None,
                 json_default=_default_json_default):
        """
        :param fmt: Config as a JSON string, allowed fields;
               extra: provide extra fields always present in logs
               source_host: override source host name
        :param datefmt: Date format to use (required by logging.Formatter
            interface but not used)
        :param json_cls: JSON encoder to forward to json.dumps
        :param json_default: Default JSON …
Run Code Online (Sandbox Code Playgroud)

python logging flask gunicorn

12
推荐指数
1
解决办法
1001
查看次数

一种生成订单号的好算法

尽管我喜欢使用GUID作为我系统中的唯一标识符,但对于客户可能不得不向客户服务代表重复的订单号这样的字段来说,它不是非常用户友好.

什么是用于生成订单号的好算法,以便它是:

  • 独特
  • 不顺序(纯光学)
  • 仅限数字值(因此可以通过电话轻松读取CSR或键入)
  • <10位数
  • 可以在中间层生成而无需往返数据库.

更新(12/05/2009)在仔细检查每个发布的答案后,我们决定将中间层中的9位数字随机化,以保存在数据库中.在发生碰撞的情况下,我们将重新生成一个新数字.

algorithm math

9
推荐指数
3
解决办法
8936
查看次数

如何在Heroku上存储私钥?

我有一个托管在Heroku上的烧瓶应用程序需要使用boto.cmdshell在AWS EC2实例(Amazon Linux AMI)上运行命令.几个问题:

  1. 使用密钥对访问EC2实例的最佳做法是什么?或者更好地使用用户名/密码?
  2. 如果使用密钥对是首选方法,那么在Heroku上管理/存储私钥的最佳做法是什么?显然,将私钥放在git中是不可取的.

谢谢.

python heroku flask

8
推荐指数
2
解决办法
4603
查看次数

什么时候最早我可以在ASP.NET MVC页面生命周期中访问SESSION?

我的问题与StackOverflow上的问题765054基本相同.我只是再问它,因为接受的答案是不正确的(你无法访问Application_BeginRequest中的会话对象).

我们的用例是我们希望将经过身份验证的用户的用户对象存储在会话中.因此,在后续请求中,我们可以根据会话中的用户对象正确设置IPrincipal和IIdentity.

asp.net asp.net-mvc session

7
推荐指数
2
解决办法
1847
查看次数

MongoDB索引无法帮助查询多键索引

我有一组定义了多键索引的文档.但是,对于43K文档,查询的性能相当差.这个查询的〜215ms被认为是差的吗?如果nscanned是43902(等于集合中的文档总数),我是否正确定义了索引?

文献:

{
    "_id": {
        "$oid": "50f7c95b31e4920008dc75dc"
    },
    "bank_accounts": [
        {
            "bank_id": {
                "$oid": "50f7c95a31e4920009b5fc5d"
            },
            "account_id": [
                "ff39089358c1e7bcb880d093e70eafdd",
                "adaec507c755d6e6cf2984a5a897f1e2"
            ]
        }
    ],
    "created_date": "2013,01,17,09,50,19,274089",
}
Run Code Online (Sandbox Code Playgroud)

指数:

{ "bank_accounts.bank_id" : 1 , "bank_accounts.account_id" : 1}
Run Code Online (Sandbox Code Playgroud)

查询:

db.visitor.find({ "bank_accounts.account_id" : "ff39089358c1e7bcb880d093e70eafdd" , "bank_accounts.bank_id" : ObjectId("50f7c95a31e4920009b5fc5d")}).explain()
Run Code Online (Sandbox Code Playgroud)

说明:

{
    "cursor" : "BtreeCursor bank_accounts.bank_id_1_bank_accounts.account_id_1",
    "isMultiKey" : true,
    "n" : 1,
    "nscannedObjects" : 43902,
    "nscanned" : 43902,
    "nscannedObjectsAllPlans" : 43902,
    "nscannedAllPlans" : 43902,
    "scanAndOrder" : false,
    "indexOnly" : false,
    "nYields" : 0,
    "nChunkSkips" : 0, …
Run Code Online (Sandbox Code Playgroud)

database performance mongodb mongoengine mlab

6
推荐指数
1
解决办法
1757
查看次数

ASP.NET MVC 应用程序自行重启

我们遇到了 ASP.NET MVC 应用程序因未知原因重新启动的问题。关闭的原因是

“Bin 应用程序目录中的子目录已更改或重命名。”

有问题的文件原来是 C:\Users\Jason\AppData\Local\Temp\Temporary ASP.NET Files\root\f691a68c\a1593a1e\hash\hash.web。

值得注意的是,我们正在 Application_Start 中启动 NServiceBus 客户端,如果我们注释掉该行,我们的 Web 应用程序不会自行重启。问题是:1)hash.web 做什么和 2)这个问题与 NServiceBus 相关吗?

.net asp.net asp.net-mvc log4net nservicebus

5
推荐指数
1
解决办法
1659
查看次数