在Django中关注日志文件

问题描述

我正在尝试为仪表板上的每个正在进行的执行提供实时日志机制。经过一些锻炼之后,我发现以下代码可以正常工作,但是当我将其投入生产时,它可以工作一段时间,但是现在如果有人单击它,则不会显示任何实时日志,而只会显示空白屏幕。

urls.py

os._exit(0)

views.py

    url(r'^live_log/$',views.stream_response,name="Live console log")

HTML代码

@condition(etag_func=None)
def stream_response(request):
    log_file = request.GET.get('filename',None)
    resp = StreamingHttpResponse(
        stream_response_generator(log_file),content_type='text/html')
    return resp


def stream_reader(logstream):
    logstream.seek(0,1)
    while True:
        line = logstream.readline()
        if not line:
            time.sleep(2)
            continue
        yield line


def stream_response_generator(log):
    yield '''<html><head>
    <script src="http://code.jquery.com/jquery-1.11.0.min.js"></script>
    <script type='text/javascript' src='/static/assets/js/scroll.js'></script>
    </head><body onmousedown='scrolled=true;' onmouseup='scrolled=false;' style='background-color:black' id='live_log'>\n'''
    with open(log,'r') as logfile:
        loglines = stream_reader(logfile)
        for line in loglines:
            if "-INFO-" in line:
                yield '''<div style='color:white;font-family:Consolas;font-size:14'>
                <script type="text/javascript">update()</script>%s</div>\n
                ''' % line
                time.sleep(.05)
            elif "-ERROR-" in line:
                yield '''<div style='color:red;font-family:Consolas;font-size:14'>
                <script type="text/javascript">update()</script>%s</div>\n''' % line
                time.sleep(.05)
            yield "</body></html>\n"

请让我知道如何跟踪每个用户执行的日志流,以及是否需要其他一些详细信息。

非常感谢:)

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...