我们的烧瓶应用程序使用的本机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) 尽管我喜欢使用GUID作为我系统中的唯一标识符,但对于客户可能不得不向客户服务代表重复的订单号这样的字段来说,它不是非常用户友好.
什么是用于生成订单号的好算法,以便它是:
更新(12/05/2009)在仔细检查每个发布的答案后,我们决定将中间层中的9位数字随机化,以保存在数据库中.在发生碰撞的情况下,我们将重新生成一个新数字.
我有一个托管在Heroku上的烧瓶应用程序需要使用boto.cmdshell在AWS EC2实例(Amazon Linux AMI)上运行命令.几个问题:
谢谢.
我的问题与StackOverflow上的问题765054基本相同.我只是再问它,因为接受的答案是不正确的(你无法访问Application_BeginRequest中的会话对象).
我们的用例是我们希望将经过身份验证的用户的用户对象存储在会话中.因此,在后续请求中,我们可以根据会话中的用户对象正确设置IPrincipal和IIdentity.
我有一组定义了多键索引的文档.但是,对于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) 我们遇到了 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 相关吗?
asp.net ×2
asp.net-mvc ×2
flask ×2
python ×2
.net ×1
algorithm ×1
database ×1
gunicorn ×1
heroku ×1
log4net ×1
logging ×1
math ×1
mlab ×1
mongodb ×1
mongoengine ×1
nservicebus ×1
performance ×1
session ×1