小编Cip*_*her的帖子

Logstash grok过滤器 - 动态命名字段

我有以下格式的日志行,并想要提取字段:

[field1: content1] [field2: content2] [field3: content3] ...
Run Code Online (Sandbox Code Playgroud)

我既不知道字段名称,也不知道字段数量.

我用反向引用和sprintf格式尝试了它,但没有得到任何结果:

match => [ "message", "(?:\[(\w+): %{DATA:\k<-1>}\])+" ] # not working
match => [ "message", "(?:\[%{WORD:fieldname}: %{DATA:%{fieldname}}\])+" ] # not working
Run Code Online (Sandbox Code Playgroud)

这似乎只适用于一个领域,但不是更多:

match => [ "message", "(?:\[%{WORD:field}: %{DATA:content}\] ?)+" ]
add_field => { "%{field}" => "%{content}" }
Run Code Online (Sandbox Code Playgroud)

kv过滤器也不合适,因为字段的内容可能包含空格.

是否有任何插件/策略来解决这个问题?

logstash

11
推荐指数
2
解决办法
1万
查看次数

在Heroku上使用Gunicorn的Flask应用程序中,Flask会话不会持久存在

我正在使用Gunicorn作为Web服务器运行Flask应用程序.整个项目部署到Heroku.

Procfile

web: gunicorn app:app --log-file=-
Run Code Online (Sandbox Code Playgroud)

Flask会话在服务器端实现,只有会话ID存储在flask.session对象中.每当我尝试登录时,我都会首先正确登录,然后重定向到起始站点(应该是用户站点).

LoginController.py

def login(form) :
    User.session.set(User.getByLogin(form))
    if User.session.exists() :
        return redirect(Urls.home)
    return redirect(Urls.login)
Run Code Online (Sandbox Code Playgroud)

日志显示User.session.exists()返回True但在下一个方法中(在重定向期间)...

HomeController.py

def view() :
    if User.session.exists() :
        return CourseController.view()
    return render_template("home.html")
Run Code Online (Sandbox Code Playgroud)

...同样的方法返回False.

User.session对象

def exists(self) :
    key = session.get("user_key")
    user = self.users.get(key)
    Log.debug("session::exists", user = user)
    return user is not None
Run Code Online (Sandbox Code Playgroud)

在以下所有请求中,用户是否随机登录.

这可能是什么原因?我听说过大的session对象会导致数据丢失,但我只会在其中存储整数.

python session heroku flask gunicorn

4
推荐指数
1
解决办法
3566
查看次数

标签 统计

flask ×1

gunicorn ×1

heroku ×1

logstash ×1

python ×1

session ×1