问题描述
我正在尝试为仪表板上的每个正在进行的执行提供实时日志机制。经过一些锻炼之后,我发现以下代码可以正常工作,但是当我将其投入生产时,它可以工作一段时间,但是现在如果有人单击它,则不会显示任何实时日志,而只会显示空白屏幕。
urls.py
os._exit(0)
views.py
url(r'^live_log/$',views.stream_response,name="Live console log")
@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 (将#修改为@)